hyperdx/.changeset
Warren Lee c4a1311e86
Fix "Copy entire row as JSON" button TypeError on non-string values (#2116)
## Summary

Fixes an operator-precedence bug in the "Copy entire row as JSON" button on the Search page. The `typeof value === 'string'` guard only applied to `value.startsWith('{')` but not `value.startsWith('[')`, so when a row contained a non-string value (number, boolean, etc.) the second `startsWith` call threw:

```
TypeError: s.startsWith is not a function
```

The fix moves the `typeof` check to guard both `startsWith` calls:

```diff
- (typeof value === 'string' && value.startsWith('{')) ||
- value.startsWith('[')
+ typeof value === 'string' &&
+ (value.startsWith('{') || value.startsWith('['))
```

### How to test locally or on Vercel

1. Open any Search page with results containing non-string column values (e.g. numeric or boolean fields).
2. Hover over a row and click the "Copy entire row as JSON" button (copy icon).
3. Verify the row is copied as valid JSON to the clipboard without a console error.

### References

- Related issue: HDX-4023


<div><a href="https://cursor.com/agents/bc-7aa1e5f4-ced5-4ee0-9585-4f473c5fca69"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-7aa1e5f4-ced5-4ee0-9585-4f473c5fca69"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>



Co-authored-by: Cursor Agent <199161495+cursoragent@users.noreply.github.com>
2026-04-14 22:05:23 +00:00
..
add-alerts-page.md [HDX-3969] Add alerts page (Shift+A) with overview and recent history (#2093) 2026-04-10 11:36:38 -07:00
add-cli-pattern-mining.md [HDX-3964] Add event pattern mining to CLI (Shift+P) (#2106) 2026-04-14 18:03:56 +00:00
add-drain-library.md [HDX-3964] Add event pattern mining to CLI (Shift+P) (#2106) 2026-04-14 18:03:56 +00:00
bump-otel-collector-to-0149.md [HDX-3929] Migrate OTel Collector build to use OCB (OpenTelemetry Collector Builder) (#2109) 2026-04-14 12:04:20 -07:00
cli-app-url-migration.md [HDX-3976] CLI: migrate from apiUrl to appUrl with interactive login flow (#2101) 2026-04-10 22:45:48 +00:00
config.json feat: allow otel-collector to run without OpAMP server (#1672) 2026-01-29 17:50:24 +00:00
cool-pants-train.md feat: integrate Model Context Protocol (MCP) server for dashboards & investigations (#2030) 2026-04-14 14:39:07 +00:00
fix-copy-row-json-button.md Fix "Copy entire row as JSON" button TypeError on non-string values (#2116) 2026-04-14 22:05:23 +00:00
hdx-3908-validation-toast-dedupe.md [HDX-3908] Dedupe source validation issue toasts (#2103) 2026-04-13 20:47:59 +00:00
migrate-otel-collector-to-ocb.md [HDX-3929] Migrate OTel Collector build to use OCB (OpenTelemetry Collector Builder) (#2109) 2026-04-14 12:04:20 -07:00
open-trace-in-browser.md [HDX-3978] Add 'o' keybinding to open trace/span in browser from TUI (#2105) 2026-04-13 22:29:41 +00:00
optimize-trace-waterfall.md [HDX-3963] Optimize event detail and trace waterfall queries (#2104) 2026-04-13 21:39:41 +00:00
README.md feat: init changeset 2023-09-15 17:23:15 -07:00
sharp-emus-reflect.md fix: Skip rendering empty SQL dashboard filter (#2115) 2026-04-14 20:04:58 +00:00
short-badgers-applaud.md feat: Implement alerting for Raw SQL-based dashboard tiles (#2073) 2026-04-13 17:58:22 +00:00
upgrade-mantine-v9.md [HDX-3981] Upgrade Mantine v7 to v9 (#2096) 2026-04-13 16:03:29 +00:00

Changesets

Hello and welcome! This folder has been automatically generated by @changesets/cli, a build tool that works with multi-package repos, or single-package repos to help you version and publish your code. You can find the full documentation for it in our repository

We have a quick list of common questions to get you started engaging with this project in our documentation