From 6278fde9a1a66b0c98ff50c13086963f79823dad Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 8 Jun 2026 19:45:03 +0000 Subject: [PATCH] chore(release): bump HyperDX app/package versions --- .changeset/add-accesskey-index.md | 5 - .changeset/angry-boats-lie.md | 5 - .changeset/breezy-students-clap.md | 7 - .changeset/browser-rum-dashboard-template.md | 12 -- .changeset/chilled-drinks-pay.md | 6 - .changeset/connect-your-ai-assistant.md | 11 -- .../dashboard-number-tile-font-resize.md | 10 -- .changeset/fix-describe-source-timeout.md | 5 - .changeset/good-swans-hammer.md | 5 - .changeset/hdx-4405-trailing-action-hint.md | 5 - .changeset/many-comics-rule.md | 5 - .changeset/mcp-alias-descriptions.md | 5 - .changeset/mcp-dashboard-improvements.md | 21 --- .changeset/mcp-objectid-validation.md | 10 -- .../page-header-z-index-below-drawers.md | 20 --- .changeset/page-migrate-dashboard.md | 7 - .changeset/rename-chart-palette-tokens.md | 85 --------- .changeset/rename-mcp-tools-to-clickstack.md | 10 -- .../service-map-percentiles-filtering.md | 12 -- .changeset/smooth-turkeys-dream.md | 5 - .changeset/source-chip-kebab-menu.md | 5 - .changeset/source-form-dropdown-clipping.md | 5 - .changeset/tough-ads-pay.md | 5 - .changeset/wet-ties-kneel.md | 5 - .env | 4 +- packages/api/CHANGELOG.md | 131 ++++++++++++++ packages/api/package.json | 4 +- packages/app/CHANGELOG.md | 163 ++++++++++++++++++ packages/app/package.json | 4 +- packages/cli/package.json | 2 +- packages/common-utils/CHANGELOG.md | 96 +++++++++++ packages/common-utils/package.json | 2 +- packages/otel-collector/CHANGELOG.md | 2 + packages/otel-collector/package.json | 2 +- yarn.lock | 8 +- 35 files changed, 405 insertions(+), 284 deletions(-) delete mode 100644 .changeset/add-accesskey-index.md delete mode 100644 .changeset/angry-boats-lie.md delete mode 100644 .changeset/breezy-students-clap.md delete mode 100644 .changeset/browser-rum-dashboard-template.md delete mode 100644 .changeset/chilled-drinks-pay.md delete mode 100644 .changeset/connect-your-ai-assistant.md delete mode 100644 .changeset/dashboard-number-tile-font-resize.md delete mode 100644 .changeset/fix-describe-source-timeout.md delete mode 100644 .changeset/good-swans-hammer.md delete mode 100644 .changeset/hdx-4405-trailing-action-hint.md delete mode 100644 .changeset/many-comics-rule.md delete mode 100644 .changeset/mcp-alias-descriptions.md delete mode 100644 .changeset/mcp-dashboard-improvements.md delete mode 100644 .changeset/mcp-objectid-validation.md delete mode 100644 .changeset/page-header-z-index-below-drawers.md delete mode 100644 .changeset/page-migrate-dashboard.md delete mode 100644 .changeset/rename-chart-palette-tokens.md delete mode 100644 .changeset/rename-mcp-tools-to-clickstack.md delete mode 100644 .changeset/service-map-percentiles-filtering.md delete mode 100644 .changeset/smooth-turkeys-dream.md delete mode 100644 .changeset/source-chip-kebab-menu.md delete mode 100644 .changeset/source-form-dropdown-clipping.md delete mode 100644 .changeset/tough-ads-pay.md delete mode 100644 .changeset/wet-ties-kneel.md diff --git a/.changeset/add-accesskey-index.md b/.changeset/add-accesskey-index.md deleted file mode 100644 index 4a9b44d73c..0000000000 --- a/.changeset/add-accesskey-index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/api": minor ---- - -Add unique MongoDB index on accessKey field in User model to eliminate full collection scans during API key authentication. This could cause startup failures if any existing users share duplicate accessKey values. diff --git a/.changeset/angry-boats-lie.md b/.changeset/angry-boats-lie.md deleted file mode 100644 index a5e9d5fc74..0000000000 --- a/.changeset/angry-boats-lie.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/app": patch ---- - -fix(search-filters): prevent nested filter dropdowns from disappearing on reopen diff --git a/.changeset/breezy-students-clap.md b/.changeset/breezy-students-clap.md deleted file mode 100644 index 2e08cb5b03..0000000000 --- a/.changeset/breezy-students-clap.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@hyperdx/common-utils": patch -"@hyperdx/api": patch -"@hyperdx/app": patch ---- - -feat: Add option to fit time chart y-axis lower bound diff --git a/.changeset/browser-rum-dashboard-template.md b/.changeset/browser-rum-dashboard-template.md deleted file mode 100644 index fd16b607c6..0000000000 --- a/.changeset/browser-rum-dashboard-template.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -'@hyperdx/app': minor ---- - -feat: add Browser RUM dashboard template - -- New "Browser RUM" template in the dashboards gallery for browser sessions instrumented with the HyperDX Browser SDK (or any OTel browser instrumentation emitting a `rum.sessionId` resource attribute) -- Performance Overview section: page-view/session/error KPIs, Core Web Vitals (LCP/INP/CLS) p75, median/p75/p90 page-load percentiles, and long-task health -- Page Views Breakdown section: traffic grouped by URL, browser (parsed from the `http.user_agent` the document-load instrumentation emits), country, and device size (derived from `screen.xy`) -- Errors section with tabs for an overview, JS exceptions (by message and by page), and failing API calls -- Five dashboard-level filters: Service, Environment, Service Version, Page URL, and Country -- Top Countries tile and the Country filter populate when the OTel collector's `geoip` processor is enabled (geo can't be derived in the browser) diff --git a/.changeset/chilled-drinks-pay.md b/.changeset/chilled-drinks-pay.md deleted file mode 100644 index d5a8b7d1b9..0000000000 --- a/.changeset/chilled-drinks-pay.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@hyperdx/common-utils": patch -"@hyperdx/api": patch ---- - -fix: Add sourceId to MCP Raw SQL Tile schema diff --git a/.changeset/connect-your-ai-assistant.md b/.changeset/connect-your-ai-assistant.md deleted file mode 100644 index e39775e851..0000000000 --- a/.changeset/connect-your-ai-assistant.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@hyperdx/app": patch ---- - -feat: add a "Connect your AI assistant" section to Team Settings - -A new section on the Team Settings page (Integrations tab, above the API Keys -card) lets a user install the HyperDX MCP server in Claude Code, Cursor, -VS Code + Copilot, Codex CLI, or any MCP-compatible host without hand-rolling -JSON. Per-host snippets carry the user's personal access key so the install -works against the existing `/api/mcp` route without extra setup. diff --git a/.changeset/dashboard-number-tile-font-resize.md b/.changeset/dashboard-number-tile-font-resize.md deleted file mode 100644 index 1bdcaa5297..0000000000 --- a/.changeset/dashboard-number-tile-font-resize.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -feat(dashboard): auto-resize font in number tiles to fit container - -Number tiles now automatically scale their font size to fit the available -width, preventing text overflow on narrow tiles and making better use of -space on wide ones. Includes an error boundary so a single broken tile -does not crash the entire dashboard. diff --git a/.changeset/fix-describe-source-timeout.md b/.changeset/fix-describe-source-timeout.md deleted file mode 100644 index 716b355bc0..0000000000 --- a/.changeset/fix-describe-source-timeout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/api": patch ---- - -fix(mcp): reduce describe_source timeouts by using rollup tables for map key discovery diff --git a/.changeset/good-swans-hammer.md b/.changeset/good-swans-hammer.md deleted file mode 100644 index a5ba3e0de5..0000000000 --- a/.changeset/good-swans-hammer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/common-utils": patch ---- - -Adding filters to dashboard exports. Implemented validation on dashboard imports to catch potential issues with generated JSON or manually tweaked JSON. diff --git a/.changeset/hdx-4405-trailing-action-hint.md b/.changeset/hdx-4405-trailing-action-hint.md deleted file mode 100644 index 2dba609e2b..0000000000 --- a/.changeset/hdx-4405-trailing-action-hint.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/app": patch ---- - -Dashboard table tiles configured with a row-click action now show a trailing arrow-up-right icon at the right edge of each row, revealed on hover, with a small tooltip that names the destination. Actionable rows get a stronger background highlight on hover to reinforce interactivity before the user sees the arrow fade in. The icon click navigates to the same URL as a row click, with all the standard native browser behaviors (cmd-click new tab, middle-click new tab, right-click context menu). diff --git a/.changeset/many-comics-rule.md b/.changeset/many-comics-rule.md deleted file mode 100644 index 26eae6d49e..0000000000 --- a/.changeset/many-comics-rule.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/common-utils": patch ---- - -feat: add direct_read optimization for filters diff --git a/.changeset/mcp-alias-descriptions.md b/.changeset/mcp-alias-descriptions.md deleted file mode 100644 index 61cc48e4b8..0000000000 --- a/.changeset/mcp-alias-descriptions.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/api': patch ---- - -fix(mcp): improve alias field descriptions and examples for readable chart legends diff --git a/.changeset/mcp-dashboard-improvements.md b/.changeset/mcp-dashboard-improvements.md deleted file mode 100644 index 375224e649..0000000000 --- a/.changeset/mcp-dashboard-improvements.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -'@hyperdx/api': patch ---- - -feat(mcp): add patch_dashboard, get_dashboard_tile, search_dashboards tools - -Add three new MCP dashboard tools for granular operations: - -- `hyperdx_get_dashboard_tile` — retrieve a single tile by tileId -- `hyperdx_patch_dashboard` — update name/tags and/or replace one tile - without resubmitting the full dashboard -- `hyperdx_search_dashboards` — search by name and/or tags - -Fix empty parameter schema on patch/search tools caused by Zod -`.refine()` wrapping. Document Lucene substring matching limitations -prominently in tool descriptions and query guide prompt. - -**Breaking (minor):** Tile `name` on `hyperdx_save_dashboard` now requires -at least 1 character (`.min(1)`). Previously empty string `""` was accepted -and silently persisted as a blank title. Callers sending `name: ""` will -now receive a validation error. diff --git a/.changeset/mcp-objectid-validation.md b/.changeset/mcp-objectid-validation.md deleted file mode 100644 index 6087e50143..0000000000 --- a/.changeset/mcp-objectid-validation.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@hyperdx/api': patch ---- - -refactor(mcp): simplify ObjectId validation with shared helpers and schema-level checks - -Add `mcpError()` and `validateObjectId()` utilities to reduce boilerplate -across MCP tool handlers. Move ObjectId validation into Zod input schemas -for always-required ID fields, eliminating inline checks entirely. Remaining -conditional checks use the new one-liner helper. diff --git a/.changeset/page-header-z-index-below-drawers.md b/.changeset/page-header-z-index-below-drawers.md deleted file mode 100644 index 31d4dd178e..0000000000 --- a/.changeset/page-header-z-index-below-drawers.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -fix(z-index): keep sticky header below drawers and drawers above the fullscreen tile modal - -Two related z-index regressions: - -- `PageHeader` was pinned at `z-index: 100`, but app drawers opt into a - much lower stack via `ZIndexContext` (`contextZIndex + 10`, so a - top-level drawer renders at `z-index: 10`). The sticky header therefore - floated above the drawer overlay. The header now sits at `z-index: 2` so - drawer overlays reliably cover the page chrome while the header still - wins against normal scrolling content. -- `FullscreenPanelModal` used Mantine's default modal z-index (`200`) and - didn't propagate it through `ZIndexContext`. Clicking a row in a - fullscreen search tile opened a `DBRowSidePanel` drawer at `z-index: 10` - that was hidden behind the modal. The modal now follows the existing - `contextZIndex + 10` pattern and wraps its children in a - `ZIndexContext.Provider`, so child drawers stack on top of it. diff --git a/.changeset/page-migrate-dashboard.md b/.changeset/page-migrate-dashboard.md deleted file mode 100644 index dc70c2ec0a..0000000000 --- a/.changeset/page-migrate-dashboard.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -chore: migrate the custom Dashboard page to shared `PageLayout` / `PageHeader`. Breadcrumbs, the editable dashboard name, dashboard actions (Favorite, Tags, Menu), and the "Created by … Updated …" meta now live in a single page header, while the query toolbar (SQL/Lucene WHERE, time range, granularity, Live, refresh, edit filters, Run) is pinned to the top of the scroll container as a dedicated sticky row — the chrome above scrolls away and only the toolbar follows the user. The "Updated …" meta moves to the right side of the breadcrumbs row instead of sitting as a separate body line. - -`PageHeader` gains a `stickyRow` slot that any page can use to declare a single row that should be the only pinned element, with the rest of the header treated as scrolling chrome. Other pages are unaffected — a `PageHeader` without `stickyRow` keeps the existing fully-sticky behavior. diff --git a/.changeset/rename-chart-palette-tokens.md b/.changeset/rename-chart-palette-tokens.md deleted file mode 100644 index cea4e38ac2..0000000000 --- a/.changeset/rename-chart-palette-tokens.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -'@hyperdx/common-utils': minor -'@hyperdx/app': minor -'@hyperdx/api': patch ---- - -refactor(theme): rename chart palette tokens from chart-1..10 to hue-named -(chart-blue, chart-orange, ...) and unify the categorical palette across HyperDX -and ClickStack - -Stored configs from the initial color picker (#2265) keep working. -`ChartPaletteTokenSchema` stays strict (a plain `z.enum`, so its `z.input` -matches `z.output` — wrapping it in `z.preprocess` would poison -`validateRequest`'s `req.body` inference all the way up to -`Dashboard.tiles[i].config.color`). Migration of legacy `chart-1` .. `chart-10` -happens at five complementary points so no entry or wire-format path can slip -through, all composing over a single shared walker -(`walkRawDashboardTileColors` in `common-utils`) so the per-tile traversal -stays in lockstep: - -- **Fetch-time / write-time (React)**: `normalizeDashboardTileColors` in - `packages/app/src/dashboard.ts` heals dashboards on read - (`useDashboards` / `fetchLocalDashboards` / `fetchDashboards`) and on write - (`useUpdateDashboard` / `useCreateDashboard`). Unresolvable color strings - (stale hexes, hand-edited values, forward-rolled future tokens) are - preserved so the user's chosen value survives a render pass — the strict - server-side schema surfaces a clear error on next save instead of the - normalizer quietly dropping the field. -- **JSON import**: `DBDashboardImportPage` runs - `normalizeRawDashboardTileColors` on the parsed JSON *before* the strict - `DashboardTemplateSchema.safeParse`, so templates exported from a - pre-rename deploy import cleanly. -- **Server-side GET response healing**: `getDashboards` / `getDashboard` in - `packages/api/src/controllers/dashboard.ts` rewrite legacy tile colors on - the way out. Pre-rename Mongo docs are served on the wire as - hue-named tokens so non-React HTTP clients (CI scripts, stale bundle - tabs during a rolling deploy, the external API) can round-trip - GET → PATCH without ever resurrecting `chart-N` through the strict - schema. -- **Server-side write shim**: the dashboards POST / PATCH routes mount - a request-body preprocessor that rewrites legacy tile colors before - `validateRequest` runs `ChartPaletteTokenSchema`. Catches non-React - HTTP callers (stale-bundle tabs during a rolling deploy, CI scripts, - MCP, the upcoming external-API parity work) for a one-release - deprecation window without weakening the schema's input/output equality. - The dashboard provisioner task applies the same shim before parsing - on-disk template files. -- **Render-time (belt-and-suspenders)**: `DBNumberChart` and - `ColorSwatchInput` also call `resolveChartPaletteToken` for tiles - constructed in memory between fetch and save (`ChartEditor` form - state, unit-test fixtures, hand-rolled `Tile` literals). - -The migration preserves the HyperDX slot ordering from #2265 (slot 1 = brand -green, slot 2 = blue, etc.). - -**ClickStack legacy color caveat:** Pre-rename ClickStack used a different slot -ordering than HyperDX (`--color-chart-1` was brand blue `#437eef`, not brand -green). The migration map uses HyperDX slot ordering, so any ClickStack -dashboard saved via #2265 with `color: 'chart-1'` will flip from blue to -Observable green after migration. We chose this trade-off deliberately over -branching the legacy map by active theme: `LEGACY_CHART_PALETTE_TOKEN_MAP` lives -in `common-utils` (shared with the API), and migration is one-shot persisted on -next save — theme-branching would couple common-utils to browser DOM state and -still produce wrong results for users whose active theme changed since the -original pick. Affected users can manually re-pick the desired hue via the (now -hue-labeled) color picker. - -The categorical palette is based on Observable 10, with `chart-blue` swapped to -`#437eef` to match the brand link color -(`--click-global-color-text-link-default`); all other hues are straight from -Observable 10. The palette resolves identically on both themes — picking -`chart-blue` always renders the brand blue. Brand identity for charts moves -entirely into the semantic layer: `--color-chart-success` and `--color-chart-info` -resolve to categorical `chart-green` (`#3ca951`) and `chart-blue` (`#437eef`) on -both HyperDX and ClickStack, so success fills, info-level logs, and the -matching multi-series slots all read consistently across brands. - -Internally, JS (`CATEGORICAL_HEX_BY_TOKEN` in `packages/app/src/utils.ts`) is -the source of truth for categorical hues — `getColorFromCSSVariable` and -`getColorFromCSSToken` skip `getComputedStyle` for categorical tokens since the -palette is unified across themes. The matching `--color-chart-{hue}` CSS vars in -`_tokens.scss` remain as a stylesheet-author affordance (inline `var()` use, -devtools inspection) and a hook for any future per-brand override. Semantic -tokens still resolve through `getComputedStyle` because they genuinely vary per -theme. diff --git a/.changeset/rename-mcp-tools-to-clickstack.md b/.changeset/rename-mcp-tools-to-clickstack.md deleted file mode 100644 index 70347fa33c..0000000000 --- a/.changeset/rename-mcp-tools-to-clickstack.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@hyperdx/api": patch -"@hyperdx/common-utils": patch ---- - -refactor(mcp): rename all MCP tool prefixes from `hyperdx_` to `clickstack_` - -Rename the MCP server name from `hyperdx` to `clickstack` and update all 19 -tool names (e.g. `hyperdx_search` → `clickstack_search`), along with -descriptions, prompts, error messages, and test references. diff --git a/.changeset/service-map-percentiles-filtering.md b/.changeset/service-map-percentiles-filtering.md deleted file mode 100644 index 2e80fab9b0..0000000000 --- a/.changeset/service-map-percentiles-filtering.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -feat(service-map): server-side filtering, latency percentiles, throughput & focus - -The Service Map gains server-side filtering (Lucene/SQL `where` plus a -service-name multi-select with inbound/outbound neighbor expansion), latency -percentiles (p50/p95/p99) and request throughput (req/s) in node and edge -tooltips, a "Focus" action to scope the map to a service and its immediate -dependencies, and node sizing by total throughput (incoming + outgoing). -Percentiles are computed server-side via a single GROUPING SETS query. diff --git a/.changeset/smooth-turkeys-dream.md b/.changeset/smooth-turkeys-dream.md deleted file mode 100644 index ddfa44ee5a..0000000000 --- a/.changeset/smooth-turkeys-dream.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/app": patch ---- - -fix: Fix height of source select RHS menu diff --git a/.changeset/source-chip-kebab-menu.md b/.changeset/source-chip-kebab-menu.md deleted file mode 100644 index 9ec99239ab..0000000000 --- a/.changeset/source-chip-kebab-menu.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -feat(source-picker): chip + kebab menu UX diff --git a/.changeset/source-form-dropdown-clipping.md b/.changeset/source-form-dropdown-clipping.md deleted file mode 100644 index 08f54d1c83..0000000000 --- a/.changeset/source-form-dropdown-clipping.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -Fix the database, table, and connection dropdowns being clipped inside the source setup modal. The dropdowns now render in a portal, so the full list is visible and scrollable when configuring or editing a source. diff --git a/.changeset/tough-ads-pay.md b/.changeset/tough-ads-pay.md deleted file mode 100644 index 792a3b8c3d..0000000000 --- a/.changeset/tough-ads-pay.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/app": minor ---- - -feat: trace panel inline split detail diff --git a/.changeset/wet-ties-kneel.md b/.changeset/wet-ties-kneel.md deleted file mode 100644 index 11aa39b0a1..0000000000 --- a/.changeset/wet-ties-kneel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/app": patch ---- - -chore: Make error states consistent across chart types diff --git a/.env b/.env index 6f07a637c7..9137bc988f 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.28.0 -IMAGE_VERSION_SUB_TAG=.28.0 +CODE_VERSION=2.29.0 +IMAGE_VERSION_SUB_TAG=.29.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 5f4e8b8e17..d2d91b8aee 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -1,5 +1,136 @@ # @hyperdx/api +## 2.29.0 + +### Minor Changes + +- 9119de5f: Add unique MongoDB index on accessKey field in User model to eliminate full collection scans during API key authentication. This could cause startup failures if any existing users share duplicate accessKey values. + +### Patch Changes + +- 998ea5d0: feat: Add option to fit time chart y-axis lower bound +- ee907386: fix: Add sourceId to MCP Raw SQL Tile schema +- cdd7ca07: fix(mcp): reduce describe_source timeouts by using rollup tables for map key discovery +- 8164492f: fix(mcp): improve alias field descriptions and examples for readable chart legends +- a19ba549: feat(mcp): add patch_dashboard, get_dashboard_tile, search_dashboards tools + + Add three new MCP dashboard tools for granular operations: + + - `hyperdx_get_dashboard_tile` — retrieve a single tile by tileId + - `hyperdx_patch_dashboard` — update name/tags and/or replace one tile + without resubmitting the full dashboard + - `hyperdx_search_dashboards` — search by name and/or tags + + Fix empty parameter schema on patch/search tools caused by Zod + `.refine()` wrapping. Document Lucene substring matching limitations + prominently in tool descriptions and query guide prompt. + + **Breaking (minor):** Tile `name` on `hyperdx_save_dashboard` now requires + at least 1 character (`.min(1)`). Previously empty string `""` was accepted + and silently persisted as a blank title. Callers sending `name: ""` will + now receive a validation error. + +- f6bda8c5: refactor(mcp): simplify ObjectId validation with shared helpers and schema-level checks + + Add `mcpError()` and `validateObjectId()` utilities to reduce boilerplate + across MCP tool handlers. Move ObjectId validation into Zod input schemas + for always-required ID fields, eliminating inline checks entirely. Remaining + conditional checks use the new one-liner helper. + +- e03971b0: refactor(theme): rename chart palette tokens from chart-1..10 to hue-named + (chart-blue, chart-orange, ...) and unify the categorical palette across HyperDX + and ClickStack + + Stored configs from the initial color picker (#2265) keep working. + `ChartPaletteTokenSchema` stays strict (a plain `z.enum`, so its `z.input` + matches `z.output` — wrapping it in `z.preprocess` would poison + `validateRequest`'s `req.body` inference all the way up to + `Dashboard.tiles[i].config.color`). Migration of legacy `chart-1` .. `chart-10` + happens at five complementary points so no entry or wire-format path can slip + through, all composing over a single shared walker + (`walkRawDashboardTileColors` in `common-utils`) so the per-tile traversal + stays in lockstep: + + - **Fetch-time / write-time (React)**: `normalizeDashboardTileColors` in + `packages/app/src/dashboard.ts` heals dashboards on read + (`useDashboards` / `fetchLocalDashboards` / `fetchDashboards`) and on write + (`useUpdateDashboard` / `useCreateDashboard`). Unresolvable color strings + (stale hexes, hand-edited values, forward-rolled future tokens) are + preserved so the user's chosen value survives a render pass — the strict + server-side schema surfaces a clear error on next save instead of the + normalizer quietly dropping the field. + - **JSON import**: `DBDashboardImportPage` runs + `normalizeRawDashboardTileColors` on the parsed JSON _before_ the strict + `DashboardTemplateSchema.safeParse`, so templates exported from a + pre-rename deploy import cleanly. + - **Server-side GET response healing**: `getDashboards` / `getDashboard` in + `packages/api/src/controllers/dashboard.ts` rewrite legacy tile colors on + the way out. Pre-rename Mongo docs are served on the wire as + hue-named tokens so non-React HTTP clients (CI scripts, stale bundle + tabs during a rolling deploy, the external API) can round-trip + GET → PATCH without ever resurrecting `chart-N` through the strict + schema. + - **Server-side write shim**: the dashboards POST / PATCH routes mount + a request-body preprocessor that rewrites legacy tile colors before + `validateRequest` runs `ChartPaletteTokenSchema`. Catches non-React + HTTP callers (stale-bundle tabs during a rolling deploy, CI scripts, + MCP, the upcoming external-API parity work) for a one-release + deprecation window without weakening the schema's input/output equality. + The dashboard provisioner task applies the same shim before parsing + on-disk template files. + - **Render-time (belt-and-suspenders)**: `DBNumberChart` and + `ColorSwatchInput` also call `resolveChartPaletteToken` for tiles + constructed in memory between fetch and save (`ChartEditor` form + state, unit-test fixtures, hand-rolled `Tile` literals). + + The migration preserves the HyperDX slot ordering from #2265 (slot 1 = brand + green, slot 2 = blue, etc.). + + **ClickStack legacy color caveat:** Pre-rename ClickStack used a different slot + ordering than HyperDX (`--color-chart-1` was brand blue `#437eef`, not brand + green). The migration map uses HyperDX slot ordering, so any ClickStack + dashboard saved via #2265 with `color: 'chart-1'` will flip from blue to + Observable green after migration. We chose this trade-off deliberately over + branching the legacy map by active theme: `LEGACY_CHART_PALETTE_TOKEN_MAP` lives + in `common-utils` (shared with the API), and migration is one-shot persisted on + next save — theme-branching would couple common-utils to browser DOM state and + still produce wrong results for users whose active theme changed since the + original pick. Affected users can manually re-pick the desired hue via the (now + hue-labeled) color picker. + + The categorical palette is based on Observable 10, with `chart-blue` swapped to + `#437eef` to match the brand link color + (`--click-global-color-text-link-default`); all other hues are straight from + Observable 10. The palette resolves identically on both themes — picking + `chart-blue` always renders the brand blue. Brand identity for charts moves + entirely into the semantic layer: `--color-chart-success` and `--color-chart-info` + resolve to categorical `chart-green` (`#3ca951`) and `chart-blue` (`#437eef`) on + both HyperDX and ClickStack, so success fills, info-level logs, and the + matching multi-series slots all read consistently across brands. + + Internally, JS (`CATEGORICAL_HEX_BY_TOKEN` in `packages/app/src/utils.ts`) is + the source of truth for categorical hues — `getColorFromCSSVariable` and + `getColorFromCSSToken` skip `getComputedStyle` for categorical tokens since the + palette is unified across themes. The matching `--color-chart-{hue}` CSS vars in + `_tokens.scss` remain as a stylesheet-author affordance (inline `var()` use, + devtools inspection) and a hook for any future per-brand override. Semantic + tokens still resolve through `getComputedStyle` because they genuinely vary per + theme. + +- adac913d: refactor(mcp): rename all MCP tool prefixes from `hyperdx_` to `clickstack_` + + Rename the MCP server name from `hyperdx` to `clickstack` and update all 19 + tool names (e.g. `hyperdx_search` → `clickstack_search`), along with + descriptions, prompts, error messages, and test references. + +- Updated dependencies [998ea5d0] +- Updated dependencies [ee907386] +- Updated dependencies [89949b1b] +- Updated dependencies [747352f3] +- Updated dependencies [e03971b0] +- Updated dependencies [adac913d] + - @hyperdx/common-utils@0.21.0 + ## 2.28.0 ### Minor Changes diff --git a/packages/api/package.json b/packages/api/package.json index 9874759096..01d04336b2 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@hyperdx/api", - "version": "2.28.0", + "version": "2.29.0", "license": "MIT", "private": true, "engines": { @@ -11,7 +11,7 @@ "@ai-sdk/openai": "^3.0.47", "@braintree/sanitize-url": "^7.1.1", "@esm2cjs/p-queue": "^7.3.0", - "@hyperdx/common-utils": "^0.20.0", + "@hyperdx/common-utils": "^0.21.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 f8c17791c2..c6a5bcecf1 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,168 @@ # @hyperdx/app +## 2.29.0 + +### Minor Changes + +- 9af8cbab: feat: add Browser RUM dashboard template + + - New "Browser RUM" template in the dashboards gallery for browser sessions instrumented with the HyperDX Browser SDK (or any OTel browser instrumentation emitting a `rum.sessionId` resource attribute) + - Performance Overview section: page-view/session/error KPIs, Core Web Vitals (LCP/INP/CLS) p75, median/p75/p90 page-load percentiles, and long-task health + - Page Views Breakdown section: traffic grouped by URL, browser (parsed from the `http.user_agent` the document-load instrumentation emits), country, and device size (derived from `screen.xy`) + - Errors section with tabs for an overview, JS exceptions (by message and by page), and failing API calls + - Five dashboard-level filters: Service, Environment, Service Version, Page URL, and Country + - Top Countries tile and the Country filter populate when the OTel collector's `geoip` processor is enabled (geo can't be derived in the browser) + +- e03971b0: refactor(theme): rename chart palette tokens from chart-1..10 to hue-named + (chart-blue, chart-orange, ...) and unify the categorical palette across HyperDX + and ClickStack + + Stored configs from the initial color picker (#2265) keep working. + `ChartPaletteTokenSchema` stays strict (a plain `z.enum`, so its `z.input` + matches `z.output` — wrapping it in `z.preprocess` would poison + `validateRequest`'s `req.body` inference all the way up to + `Dashboard.tiles[i].config.color`). Migration of legacy `chart-1` .. `chart-10` + happens at five complementary points so no entry or wire-format path can slip + through, all composing over a single shared walker + (`walkRawDashboardTileColors` in `common-utils`) so the per-tile traversal + stays in lockstep: + + - **Fetch-time / write-time (React)**: `normalizeDashboardTileColors` in + `packages/app/src/dashboard.ts` heals dashboards on read + (`useDashboards` / `fetchLocalDashboards` / `fetchDashboards`) and on write + (`useUpdateDashboard` / `useCreateDashboard`). Unresolvable color strings + (stale hexes, hand-edited values, forward-rolled future tokens) are + preserved so the user's chosen value survives a render pass — the strict + server-side schema surfaces a clear error on next save instead of the + normalizer quietly dropping the field. + - **JSON import**: `DBDashboardImportPage` runs + `normalizeRawDashboardTileColors` on the parsed JSON _before_ the strict + `DashboardTemplateSchema.safeParse`, so templates exported from a + pre-rename deploy import cleanly. + - **Server-side GET response healing**: `getDashboards` / `getDashboard` in + `packages/api/src/controllers/dashboard.ts` rewrite legacy tile colors on + the way out. Pre-rename Mongo docs are served on the wire as + hue-named tokens so non-React HTTP clients (CI scripts, stale bundle + tabs during a rolling deploy, the external API) can round-trip + GET → PATCH without ever resurrecting `chart-N` through the strict + schema. + - **Server-side write shim**: the dashboards POST / PATCH routes mount + a request-body preprocessor that rewrites legacy tile colors before + `validateRequest` runs `ChartPaletteTokenSchema`. Catches non-React + HTTP callers (stale-bundle tabs during a rolling deploy, CI scripts, + MCP, the upcoming external-API parity work) for a one-release + deprecation window without weakening the schema's input/output equality. + The dashboard provisioner task applies the same shim before parsing + on-disk template files. + - **Render-time (belt-and-suspenders)**: `DBNumberChart` and + `ColorSwatchInput` also call `resolveChartPaletteToken` for tiles + constructed in memory between fetch and save (`ChartEditor` form + state, unit-test fixtures, hand-rolled `Tile` literals). + + The migration preserves the HyperDX slot ordering from #2265 (slot 1 = brand + green, slot 2 = blue, etc.). + + **ClickStack legacy color caveat:** Pre-rename ClickStack used a different slot + ordering than HyperDX (`--color-chart-1` was brand blue `#437eef`, not brand + green). The migration map uses HyperDX slot ordering, so any ClickStack + dashboard saved via #2265 with `color: 'chart-1'` will flip from blue to + Observable green after migration. We chose this trade-off deliberately over + branching the legacy map by active theme: `LEGACY_CHART_PALETTE_TOKEN_MAP` lives + in `common-utils` (shared with the API), and migration is one-shot persisted on + next save — theme-branching would couple common-utils to browser DOM state and + still produce wrong results for users whose active theme changed since the + original pick. Affected users can manually re-pick the desired hue via the (now + hue-labeled) color picker. + + The categorical palette is based on Observable 10, with `chart-blue` swapped to + `#437eef` to match the brand link color + (`--click-global-color-text-link-default`); all other hues are straight from + Observable 10. The palette resolves identically on both themes — picking + `chart-blue` always renders the brand blue. Brand identity for charts moves + entirely into the semantic layer: `--color-chart-success` and `--color-chart-info` + resolve to categorical `chart-green` (`#3ca951`) and `chart-blue` (`#437eef`) on + both HyperDX and ClickStack, so success fills, info-level logs, and the + matching multi-series slots all read consistently across brands. + + Internally, JS (`CATEGORICAL_HEX_BY_TOKEN` in `packages/app/src/utils.ts`) is + the source of truth for categorical hues — `getColorFromCSSVariable` and + `getColorFromCSSToken` skip `getComputedStyle` for categorical tokens since the + palette is unified across themes. The matching `--color-chart-{hue}` CSS vars in + `_tokens.scss` remain as a stylesheet-author affordance (inline `var()` use, + devtools inspection) and a hook for any future per-brand override. Semantic + tokens still resolve through `getComputedStyle` because they genuinely vary per + theme. + +- 418567ff: feat: trace panel inline split detail + +### Patch Changes + +- 56c58663: fix(search-filters): prevent nested filter dropdowns from disappearing on reopen +- 998ea5d0: feat: Add option to fit time chart y-axis lower bound +- 20fabc65: feat: add a "Connect your AI assistant" section to Team Settings + + A new section on the Team Settings page (Integrations tab, above the API Keys + card) lets a user install the HyperDX MCP server in Claude Code, Cursor, + VS Code + Copilot, Codex CLI, or any MCP-compatible host without hand-rolling + JSON. Per-host snippets carry the user's personal access key so the install + works against the existing `/api/mcp` route without extra setup. + +- 8e52cef4: feat(dashboard): auto-resize font in number tiles to fit container + + Number tiles now automatically scale their font size to fit the available + width, preventing text overflow on narrow tiles and making better use of + space on wide ones. Includes an error boundary so a single broken tile + does not crash the entire dashboard. + +- 2cecc9f4: Dashboard table tiles configured with a row-click action now show a trailing arrow-up-right icon at the right edge of each row, revealed on hover, with a small tooltip that names the destination. Actionable rows get a stronger background highlight on hover to reinforce interactivity before the user sees the arrow fade in. The icon click navigates to the same URL as a row click, with all the standard native browser behaviors (cmd-click new tab, middle-click new tab, right-click context menu). +- 9d713999: fix(z-index): keep sticky header below drawers and drawers above the fullscreen tile modal + + Two related z-index regressions: + + - `PageHeader` was pinned at `z-index: 100`, but app drawers opt into a + much lower stack via `ZIndexContext` (`contextZIndex + 10`, so a + top-level drawer renders at `z-index: 10`). The sticky header therefore + floated above the drawer overlay. The header now sits at `z-index: 2` so + drawer overlays reliably cover the page chrome while the header still + wins against normal scrolling content. + - `FullscreenPanelModal` used Mantine's default modal z-index (`200`) and + didn't propagate it through `ZIndexContext`. Clicking a row in a + fullscreen search tile opened a `DBRowSidePanel` drawer at `z-index: 10` + that was hidden behind the modal. The modal now follows the existing + `contextZIndex + 10` pattern and wraps its children in a + `ZIndexContext.Provider`, so child drawers stack on top of it. + +- 538a1c4e: chore: migrate the custom Dashboard page to shared `PageLayout` / `PageHeader`. Breadcrumbs, the editable dashboard name, dashboard actions (Favorite, Tags, Menu), and the "Created by … Updated …" meta now live in a single page header, while the query toolbar (SQL/Lucene WHERE, time range, granularity, Live, refresh, edit filters, Run) is pinned to the top of the scroll container as a dedicated sticky row — the chrome above scrolls away and only the toolbar follows the user. The "Updated …" meta moves to the right side of the breadcrumbs row instead of sitting as a separate body line. + + `PageHeader` gains a `stickyRow` slot that any page can use to declare a single row that should be the only pinned element, with the rest of the header treated as scrolling chrome. Other pages are unaffected — a `PageHeader` without `stickyRow` keeps the existing fully-sticky behavior. + +- d1d91d74: feat(service-map): server-side filtering, latency percentiles, throughput & focus + + The Service Map gains server-side filtering (Lucene/SQL `where` plus a + service-name multi-select with inbound/outbound neighbor expansion), latency + percentiles (p50/p95/p99) and request throughput (req/s) in node and edge + tooltips, a "Focus" action to scope the map to a service and its immediate + dependencies, and node sizing by total throughput (incoming + outgoing). + Percentiles are computed server-side via a single GROUPING SETS query. + +- 53e8bd17: fix: Fix height of source select RHS menu +- 2a681456: feat(source-picker): chip + kebab menu UX +- f95687b0: Fix the database, table, and connection dropdowns being clipped inside the source setup modal. The dropdowns now render in a portal, so the full list is visible and scrollable when configuring or editing a source. +- a6e7dcde: chore: Make error states consistent across chart types +- Updated dependencies [9119de5f] +- Updated dependencies [998ea5d0] +- Updated dependencies [ee907386] +- Updated dependencies [cdd7ca07] +- Updated dependencies [89949b1b] +- Updated dependencies [747352f3] +- Updated dependencies [8164492f] +- Updated dependencies [a19ba549] +- Updated dependencies [f6bda8c5] +- Updated dependencies [e03971b0] +- Updated dependencies [adac913d] + - @hyperdx/api@2.29.0 + - @hyperdx/common-utils@0.21.0 + ## 2.28.0 ### Minor Changes diff --git a/packages/app/package.json b/packages/app/package.json index 86edb4b74e..a447ad1f78 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@hyperdx/app", - "version": "2.28.0", + "version": "2.29.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.20.0", + "@hyperdx/common-utils": "^0.21.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 497fc92d9e..441fb579ee 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -41,7 +41,7 @@ "devDependencies": { "@clickhouse/client": "^1.12.1", "@clickhouse/client-common": "^1.12.1", - "@hyperdx/common-utils": "^0.20.0", + "@hyperdx/common-utils": "^0.21.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 450dcf1b0e..e1e7cc6c15 100644 --- a/packages/common-utils/CHANGELOG.md +++ b/packages/common-utils/CHANGELOG.md @@ -1,5 +1,101 @@ # @hyperdx/common-utils +## 0.21.0 + +### Minor Changes + +- e03971b0: refactor(theme): rename chart palette tokens from chart-1..10 to hue-named + (chart-blue, chart-orange, ...) and unify the categorical palette across HyperDX + and ClickStack + + Stored configs from the initial color picker (#2265) keep working. + `ChartPaletteTokenSchema` stays strict (a plain `z.enum`, so its `z.input` + matches `z.output` — wrapping it in `z.preprocess` would poison + `validateRequest`'s `req.body` inference all the way up to + `Dashboard.tiles[i].config.color`). Migration of legacy `chart-1` .. `chart-10` + happens at five complementary points so no entry or wire-format path can slip + through, all composing over a single shared walker + (`walkRawDashboardTileColors` in `common-utils`) so the per-tile traversal + stays in lockstep: + + - **Fetch-time / write-time (React)**: `normalizeDashboardTileColors` in + `packages/app/src/dashboard.ts` heals dashboards on read + (`useDashboards` / `fetchLocalDashboards` / `fetchDashboards`) and on write + (`useUpdateDashboard` / `useCreateDashboard`). Unresolvable color strings + (stale hexes, hand-edited values, forward-rolled future tokens) are + preserved so the user's chosen value survives a render pass — the strict + server-side schema surfaces a clear error on next save instead of the + normalizer quietly dropping the field. + - **JSON import**: `DBDashboardImportPage` runs + `normalizeRawDashboardTileColors` on the parsed JSON _before_ the strict + `DashboardTemplateSchema.safeParse`, so templates exported from a + pre-rename deploy import cleanly. + - **Server-side GET response healing**: `getDashboards` / `getDashboard` in + `packages/api/src/controllers/dashboard.ts` rewrite legacy tile colors on + the way out. Pre-rename Mongo docs are served on the wire as + hue-named tokens so non-React HTTP clients (CI scripts, stale bundle + tabs during a rolling deploy, the external API) can round-trip + GET → PATCH without ever resurrecting `chart-N` through the strict + schema. + - **Server-side write shim**: the dashboards POST / PATCH routes mount + a request-body preprocessor that rewrites legacy tile colors before + `validateRequest` runs `ChartPaletteTokenSchema`. Catches non-React + HTTP callers (stale-bundle tabs during a rolling deploy, CI scripts, + MCP, the upcoming external-API parity work) for a one-release + deprecation window without weakening the schema's input/output equality. + The dashboard provisioner task applies the same shim before parsing + on-disk template files. + - **Render-time (belt-and-suspenders)**: `DBNumberChart` and + `ColorSwatchInput` also call `resolveChartPaletteToken` for tiles + constructed in memory between fetch and save (`ChartEditor` form + state, unit-test fixtures, hand-rolled `Tile` literals). + + The migration preserves the HyperDX slot ordering from #2265 (slot 1 = brand + green, slot 2 = blue, etc.). + + **ClickStack legacy color caveat:** Pre-rename ClickStack used a different slot + ordering than HyperDX (`--color-chart-1` was brand blue `#437eef`, not brand + green). The migration map uses HyperDX slot ordering, so any ClickStack + dashboard saved via #2265 with `color: 'chart-1'` will flip from blue to + Observable green after migration. We chose this trade-off deliberately over + branching the legacy map by active theme: `LEGACY_CHART_PALETTE_TOKEN_MAP` lives + in `common-utils` (shared with the API), and migration is one-shot persisted on + next save — theme-branching would couple common-utils to browser DOM state and + still produce wrong results for users whose active theme changed since the + original pick. Affected users can manually re-pick the desired hue via the (now + hue-labeled) color picker. + + The categorical palette is based on Observable 10, with `chart-blue` swapped to + `#437eef` to match the brand link color + (`--click-global-color-text-link-default`); all other hues are straight from + Observable 10. The palette resolves identically on both themes — picking + `chart-blue` always renders the brand blue. Brand identity for charts moves + entirely into the semantic layer: `--color-chart-success` and `--color-chart-info` + resolve to categorical `chart-green` (`#3ca951`) and `chart-blue` (`#437eef`) on + both HyperDX and ClickStack, so success fills, info-level logs, and the + matching multi-series slots all read consistently across brands. + + Internally, JS (`CATEGORICAL_HEX_BY_TOKEN` in `packages/app/src/utils.ts`) is + the source of truth for categorical hues — `getColorFromCSSVariable` and + `getColorFromCSSToken` skip `getComputedStyle` for categorical tokens since the + palette is unified across themes. The matching `--color-chart-{hue}` CSS vars in + `_tokens.scss` remain as a stylesheet-author affordance (inline `var()` use, + devtools inspection) and a hook for any future per-brand override. Semantic + tokens still resolve through `getComputedStyle` because they genuinely vary per + theme. + +### Patch Changes + +- 998ea5d0: feat: Add option to fit time chart y-axis lower bound +- ee907386: fix: Add sourceId to MCP Raw SQL Tile schema +- 89949b1b: Adding filters to dashboard exports. Implemented validation on dashboard imports to catch potential issues with generated JSON or manually tweaked JSON. +- 747352f3: feat: add direct_read optimization for filters +- adac913d: refactor(mcp): rename all MCP tool prefixes from `hyperdx_` to `clickstack_` + + Rename the MCP server name from `hyperdx` to `clickstack` and update all 19 + tool names (e.g. `hyperdx_search` → `clickstack_search`), along with + descriptions, prompts, error messages, and test references. + ## 0.20.0 ### Minor Changes diff --git a/packages/common-utils/package.json b/packages/common-utils/package.json index 551601deae..ff00defcd6 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.20.0", + "version": "0.21.0", "license": "MIT", "private": true, "files": [ diff --git a/packages/otel-collector/CHANGELOG.md b/packages/otel-collector/CHANGELOG.md index 82e33e8c74..da6669ec40 100644 --- a/packages/otel-collector/CHANGELOG.md +++ b/packages/otel-collector/CHANGELOG.md @@ -1,5 +1,7 @@ # @hyperdx/otel-collector +## 2.29.0 + ## 2.28.0 ### Minor Changes diff --git a/packages/otel-collector/package.json b/packages/otel-collector/package.json index 61b68c11c9..79c9b67bee 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.28.0", + "version": "2.29.0", "license": "MIT", "private": true } diff --git a/yarn.lock b/yarn.lock index a5a567ff49..0d868420eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4337,7 +4337,7 @@ __metadata: "@ai-sdk/openai": "npm:^3.0.47" "@braintree/sanitize-url": "npm:^7.1.1" "@esm2cjs/p-queue": "npm:^7.3.0" - "@hyperdx/common-utils": "npm:^0.20.0" + "@hyperdx/common-utils": "npm:^0.21.0" "@hyperdx/node-opentelemetry": "npm:^0.9.0" "@hyperdx/passport-local-mongoose": "npm:^9.0.1" "@modelcontextprotocol/sdk": "npm:^1.27.1" @@ -4426,7 +4426,7 @@ __metadata: "@hookform/resolvers": "npm:^3.9.0" "@hyperdx/api": "workspace:*" "@hyperdx/browser": "npm:^0.22.1" - "@hyperdx/common-utils": "npm:^0.20.0" + "@hyperdx/common-utils": "npm:^0.21.0" "@hyperdx/node-opentelemetry": "npm:^0.9.0" "@jedmao/location": "npm:^3.0.0" "@mantine/core": "npm:^9.0.0" @@ -4554,7 +4554,7 @@ __metadata: dependencies: "@clickhouse/client": "npm:^1.12.1" "@clickhouse/client-common": "npm:^1.12.1" - "@hyperdx/common-utils": "npm:^0.20.0" + "@hyperdx/common-utils": "npm:^0.21.0" "@jest/globals": "npm:^30.2.0" "@types/crypto-js": "npm:^4.2.2" "@types/jest": "npm:^29.5.14" @@ -4580,7 +4580,7 @@ __metadata: languageName: unknown linkType: soft -"@hyperdx/common-utils@npm:^0.20.0, @hyperdx/common-utils@workspace:packages/common-utils": +"@hyperdx/common-utils@npm:^0.21.0, @hyperdx/common-utils@workspace:packages/common-utils": version: 0.0.0-use.local resolution: "@hyperdx/common-utils@workspace:packages/common-utils" dependencies: