Open
Conversation
Closes HDX-2776 Closes HDX-2752 # Summary This PR extends the custom attributes feature from #1356 to support custom attributes on individual rows (rather than entire traces). Further, attributes which are URLs are now rendered as links, supporting use-cases which require building custom external links from queried data. ## Demo Source Configuration: <img width="972" height="649" alt="Screenshot 2025-11-18 at 6 01 55 PM" src="https://github.com/user-attachments/assets/42e9cc95-d9e3-4155-8e25-58e4dcf0b787" /> Side panel: <img width="1587" height="511" alt="Screenshot 2025-11-18 at 6 02 12 PM" src="https://github.com/user-attachments/assets/3a1d7683-eb79-4925-99fe-4e2d7cdad78f" /> Inferred link: <img width="727" height="173" alt="Screenshot 2025-11-18 at 6 02 32 PM" src="https://github.com/user-attachments/assets/68f42f95-598c-4b30-b616-9556e32945bf" /> <details> <summary>logview attribute definition</summary> ```sql if( NOT empty(TraceId) AND NOT empty(SpanId) AND NOT empty(ServiceName), concat('https://logview.com?q=', 'trace_id=', TraceId, '&span_id=', SpanId, '&service=', ServiceName, '&start_time=', formatDateTime(Timestamp - INTERVAL 1 SECOND, '%FT%T.%fZ'), '&end_time=', formatDateTime(Timestamp + Duration/1e9 + INTERVAL 1 SECOND, '%FT%T.%fZ') ), '' ) ``` </details>
Users reported that the precision was way off to what the threshold value was, this helps ensure the two numbers have the same precision. Before: <img width="1280" height="363" alt="image" src="https://github.com/user-attachments/assets/fc1bc72c-a70e-4068-aa06-3a01d6c65b2b" /> After: <img width="1446" height="618" alt="Screenshot 2025-11-19 at 4 20 38 PM" src="https://github.com/user-attachments/assets/49be78eb-dac9-49f4-b490-a354fb69fb71" /> **Note:** One thing that could be better is if we instead used the Number Format specified on the frontend, this would require us to move the Numbro dependency and logic into common-utils, and we would also probably want to update the alert value UI to also use numbro.. I can take a stab at this if we think it's better. I figured this was a good interim solution. Fixes HDX-2847
Closes HDX-2874 # Summary This PR hides the table header row when there are no displayed columns. This prevents a glitchy behavior where the table header icons would appear vertically aligned rather than in a horizontal row when loading the table data. This occurred because the table header was rendered with an empty, horizontally-skinny column header for the expand button column, and the icons were in that skinny column header. I'd recommend reviewing with white space changes hidden - this is a very small change. ## Before https://github.com/user-attachments/assets/fceb489b-d79d-40f8-99ba-d9e4c2c5ee27 ## After https://github.com/user-attachments/assets/3b382e08-43b7-49e4-81c6-45bb2aa00688
Fixes: HDX-2852 If a user used the time picker and chose today, but with a time in the future, existing code would "infer" that and assume it was for an earlier year. Since the UI time picker doesnt allow users to select a _day_ in the future, we should be smart to parse down the time to match now()
Closes HDX-2876 # Summary This PR adds a highlighted trace attribute to the clickpy demo source which allows demo environment users to navigate to the clickpy dashboard which is associated with a trace. The link appears: <img width="1369" height="738" alt="Screenshot 2025-11-20 at 10 53 35 AM" src="https://github.com/user-attachments/assets/f353323a-9619-4ba8-a44a-586a0fafd748" /> The link navigates the user to the appropriate dashboard: <img width="2307" height="806" alt="Screenshot 2025-11-20 at 10 53 43 AM" src="https://github.com/user-attachments/assets/5c10592d-9a8e-44fa-a2ac-d01230b77745" />
Closes HDX-2881 # Summary This PR adds the row-level highlighted attributes to the row overview panel, so that they appear for the span that is selected in the trace waterfall and in an expanded table row: <img width="1071" height="966" alt="Screenshot 2025-11-20 at 2 32 09 PM" src="https://github.com/user-attachments/assets/febb6c12-4c58-4eac-b085-cbad3601b2fe" /> <img width="814" height="275" alt="Screenshot 2025-11-20 at 2 32 16 PM" src="https://github.com/user-attachments/assets/b3c6fbeb-205e-4b6a-9dfd-5ed9457a57df" /> This PR also makes some small updates to the descriptions of the highlighted attributes in the source configuration form.
There are two flaky tests that have been consistently flaky for a week. Making these tests more robust.
Fixes: HDX-2888
…ate span id (#1396) Resolves HDX-2885
Noticed styles of markdown looked much worse recently ## Before special note to large gap at the front and missing code formatting <img width="1782" height="1438" alt="Screenshot 2025-11-24 at 10 06 47 AM" src="https://github.com/user-attachments/assets/f5abbb61-1c99-424a-85d2-d1c12b489dbd" /> <img width="1910" height="1612" alt="Screenshot 2025-11-24 at 10 06 51 AM" src="https://github.com/user-attachments/assets/1eff6b65-b198-42c9-bc85-0068c6de7da5" /> ## After <img width="1350" height="1454" alt="Screenshot 2025-11-24 at 10 06 18 AM" src="https://github.com/user-attachments/assets/bba5f396-be1b-43c5-9d6f-bb4d264c11b9" /> <img width="1108" height="1568" alt="Screenshot 2025-11-24 at 10 06 29 AM" src="https://github.com/user-attachments/assets/73059e6e-c4fe-4872-953f-8f34c5ac40c9" />
As part of implementing a dependency upgrade (nuqs) we noticed that it requires Typescript 5, but we are on 4. We should update this dependency so we don't get too outdated, by bumping this we can unblock other upgrades. The biggest painpoint in this upgrade was the way that Typescript handles ESM in v4->v5 broke ts-jest ESM handling logic. I have mitigated this problem but using a lower version of `flat` which supports CJS, and mocking `ky` package since it's not actually needed for tests. Fixes HDX-2900
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2. log</summary> <p><em>Sourced from <a href="https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md">js-yaml's changelog</a>.</em></p> <blockquote> <h2>[3.14.2] - 2025-11-15</h2> <h3>Security</h3> <ul> <li>Backported v4.1.1 fix to v3</li> </ul> <h2>[4.1.1] - 2025-11-12</h2> <h3>Security</h3> <ul> <li>Fix prototype pollution issue in yaml merge (<<) operator.</li> </ul> <h2>[4.1.0] - 2021-04-15</h2> <h3>Added</h3> <ul> <li>Types are now exported as <code>yaml.types.XXX</code>.</li> <li>Every type now has <code>options</code> property with original arguments kept as they were (see <code>yaml.types.int.options</code> as an example).</li> </ul> <h3>Changed</h3> <ul> <li><code>Schema.extend()</code> now keeps old type order in case of conflicts (e.g. Schema.extend([ a, b, c ]).extend([ b, a, d ]) is now ordered as <code>abcd</code> instead of <code>cbad</code>).</li> </ul> <h2>[4.0.0] - 2021-01-03</h2> <h3>Changed</h3> <ul> <li>Check <a href="https://github.com/nodeca/js-yaml/blob/master/migrate_v3_to_v4.md">migration guide</a> to see details for all breaking changes.</li> <li>Breaking: "unsafe" tags <code>!!js/function</code>, <code>!!js/regexp</code>, <code>!!js/undefined</code> are moved to <a href="https://github.com/nodeca/js-yaml-js-types">js-yaml-js-types</a> package.</li> <li>Breaking: removed <code>safe*</code> functions. Use <code>load</code>, <code>loadAll</code>, <code>dump</code> instead which are all now safe by default.</li> <li><code>yaml.DEFAULT_SAFE_SCHEMA</code> and <code>yaml.DEFAULT_FULL_SCHEMA</code> are removed, use <code>yaml.DEFAULT_SCHEMA</code> instead.</li> <li><code>yaml.Schema.create(schema, tags)</code> is removed, use <code>schema.extend(tags)</code> instead.</li> <li><code>!!binary</code> now always mapped to <code>Uint8Array</code> on load.</li> <li>Reduced nesting of <code>/lib</code> folder.</li> <li>Parse numbers according to YAML 1.2 instead of YAML 1.1 (<code>01234</code> is now decimal, <code>0o1234</code> is octal, <code>1:23</code> is parsed as string instead of base60).</li> <li><code>dump()</code> no longer quotes <code>:</code>, <code>[</code>, <code>]</code>, <code>(</code>, <code>)</code> except when necessary, <a href="https://redirect.github.com/nodeca/js-yaml/issues/470">#470</a>, <a href="https://redirect.github.com/nodeca/js-yaml/issues/557">#557</a>.</li> <li>Line and column in exceptions are now formatted as <code>(X:Y)</code> instead of <code>at line X, column Y</code> (also present in compact format), <a href="https://redirect.github.com/nodeca/js-yaml/issues/332">#332</a>.</li> <li>Code snippet created in exceptions now contains multiple lines with line numbers.</li> <li><code>dump()</code> now serializes <code>undefined</code> as <code>null</code> in collections and removes keys with <code>undefined</code> in mappings, <a href="https://redirect.github.com/nodeca/js-yaml/issues/571">#571</a>.</li> <li><code>dump()</code> with <code>skipInvalid=true</code> now serializes invalid items in collections as null.</li> <li>Custom tags starting with <code>!</code> are now dumped as <code>!tag</code> instead of <code>!<!tag></code>, <a href="https://redirect.github.com/nodeca/js-yaml/issues/576">#576</a>.</li> <li>Custom tags starting with <code>tag:yaml.org,2002:</code> are now shorthanded using <code>!!</code>, <a href="https://redirect.github.com/nodeca/js-yaml/issues/258">#258</a>.</li> </ul> <h3>Added</h3> <ul> <li>Added <code>.mjs</code> (es modules) support.</li> <li>Added <code>quotingType</code> and <code>forceQuotes</code> options for dumper to configure string literal style, <a href="https://redirect.github.com/nodeca/js-yaml/issues/290">#290</a>, <a href="https://redirect.github.com/nodeca/js-yaml/issues/529">#529</a>.</li> <li>Added <code>styles: { '!!null': 'empty' }</code> option for dumper (serializes <code>{ foo: null }</code> as "<code>foo: </code>"), <a href="https://redirect.github.com/nodeca/js-yaml/issues/570">#570</a>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/nodeca/js-yaml/commit/9963d366dfbde0c69722452bcd40b41e7e4160a0"><code>9963d36</code></a> 3.14.2 released</li> <li><a href="https://github.com/nodeca/js-yaml/commit/10d3c8e70a6888543f5cdb656bb39f73e0ea77c1"><code>10d3c8e</code></a> dist rebuild</li> <li><a href="https://github.com/nodeca/js-yaml/commit/5278870a17454fe8621dbd8c445c412529525266"><code>5278870</code></a> fix prototype pollution in merge (<<) (<a href="https://redirect.github.com/nodeca/js-yaml/issues/731">#731</a>)</li> <li>See full diff in <a href="https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/hyperdxio/hyperdx/network/alerts). </details>
We removed bootstrap, but claude still references it
…viceDashboard (#1409) Closes HDX-2886
Also fixes hardcoded ResourceAttributes Fixes: HDX-2790, HDX-2792
Fixes: HDX-2841 Also moves the filter search into the expand/collapse to avoid visual clutter (per recommendation from Elizabet). I've enhanced it to show if there are more than 5 items only. <img width="296" height="270" alt="image" src="https://github.com/user-attachments/assets/3348c508-b8a3-442f-b0b7-f5621d1fea26" /> Before: <img width="485" height="692" alt="image" src="https://github.com/user-attachments/assets/22dcfe50-9b5a-4236-bb4a-6e9f1ae92bea" /> After: <img width="281" height="451" alt="image" src="https://github.com/user-attachments/assets/a4d4b633-2944-4e14-b36f-9135e01e596d" />
Closes HDX-2777 # Summary This PR adds a toggle that enables showing "previous period" data on line charts, overlayed with the current period data. 1. The "previous period" is a date range of the same length as the selected "current" date range, immediately prior to the current date range. 2. This feature is only enabled for line charts, bar charts are not enabled when this option is toggled on. **This PR is organized into a number of commits which may be easier to review one at a time.** ## Followup work - Improve layout of the DBEditTimeChartForm, pending design review ## Demo https://github.com/user-attachments/assets/76b220da-810e-4280-8fb3-fa20a9919685
This PR adds the ability to click on tables or graphs across the app, and be able to deep link into the search page to view the correlated search events. https://github.com/user-attachments/assets/e5c7c2f2-9b59-42de-bb73-2fa4cb5d09a2 Things to try: 1. **Attributable Functions** (min, max, average, p95, etc) can all reliably give us a y value back to enable filtering directly to the y-values value 2. **Non-attributable Functions** (count, sum, etc) can’t rely on the y value since it depends on the group by logic. As such, these will simply allow you to search by the service without passing the y value for deeper analysis. 3. **Multiple Group Bys** (ex `ServiceName, SpanName`) 4. **Where Clause** (SQL or Lucene) 5. Do a **general test** across the app to ensure everywhere that uses charting behaves the same or better than before. Some things that don’t work: 1. **Aliases in the group by** - we are hitting limitations with `node-sql-parser` that causes the aliasMap to not generate correctly when using aggregate functions in most cases. We may need to either fix these issues or find an alternative solution. 2. **Expressions in Group By** - If you have expressions in the group by, the filtering will not work based on the current implementation, it does not factor in the result of the expression in the filter value. 3. **Filters are not reflected in the UI on Search** - When you deeplink, the filters in the sidebar do not reflect what is actually being queried. This is because the filter UI logic uses `IN` but the deeplinking uses `=` to achieve the best level of precision (and avoid false positives). As such, this is something that could be improved in the future. Fixes HDX-2844, HDX-2922
Closes HDX-2939 # Summary This PR fixes a bug that caused the previous period to sometimes round to the incorrect second (see `1:34:59` instead of the desired `1:35:00`). <img width="329" height="107" alt="Screenshot 2025-12-01 at 9 43 47 AM" src="https://github.com/user-attachments/assets/e967adca-6a91-48c2-be10-dd54ac15846a" /> This was due to the `getPreviousPeriodOffset` function returning an offset at the millisecond level, which was later not rounded to the second in `getPreviousDateRange`. We now round the offset to the nearest second, to match our time picker's granularity.
…1420) Tested on each of the spots that had hooks that were changed, seems good
This is for upcoming work (and to decouple the TeamPage). No changeset added because no features or changes introduced.
Fixes HDX-2954 # Summary This PR fixes a limitation of the sql formatter which caused errors in queries that include the `%` (mod) operator <img width="212" height="145" alt="Screenshot 2025-12-02 at 1 34 11 PM" src="https://github.com/user-attachments/assets/505211a5-fa05-4d76-84f0-d76a92e852cf" />
I went ahead and looked for more occurences of the issue i raised #1697 and fixed them. I hope that's alright with you.
Closes HDX-3113 # Summary This PR adds support for querying nested (array-type) columns with Lucene syntax. ## Syntax ### Arrays of simple types - Array is non-empty: `Events.Name:*` --> `notEmpty(Events.Name)` - Array contains element: `Events.Name:"error"` --> `has(Events.Name, 'error')` - Supports string, numeric, and boolean inner types with `has()` - All other types are cast to string: `Events.Timestamp:"2026-02-02 15:19:37.196300098"` --> `arrayExists(el ->toString(el) = '2026-02-02 15:19:37.196300098, Events.Timestamp)` - Array contains element containing: `Events.Name:domain` --> `arrayExists(el -> el ILIKE '%domain%', Events.Name)` ### Arrays of Maps - Array of maps contains map with non-empty key: `Events.Attributes.exception.stacktrace:*` --> `arrayExists(el - > notEmpty (toString (el['exception.stacktrace'])) = 1, Events.Attributes)` - Array of maps contains map with key+value: `Events.Attributes.exception.stacktrace:"AggregateError"` --> `arrayExists(el - > el['exception.stacktrace'] = 'AggregateError', Events.Attributes)` - Array of maps contains map with key containing value: `Events.Attributes.exception.stacktrace:"AggregateError"` --> `arrayExists(el - > el['exception.stacktrace'] ILIKE '%AggregateError%', Events.Attributes)` ### Arrays of JSON - Array of JSON contains object with non-empty key: `Events.Attributes.message:*` --> `arrayExists(el - > notEmpty (toString (el.message)) = 1, Events.Attributes)` - Array of JSON contains object with key + value: `Events.Attributes.exception.stacktrace:"AggregateError"` --> `arrayExists(el - > toString (el.exception.stacktrace) = 'AggregateError', Events.Attributes)` - Array of JSON contains object with key containing value: `Events.Attributes.exception.stacktrace:AggregateError` --> `arrayExists(el - > toString (el.exception.stacktrace) ILIKE '%AggregateError%', Events.Attributes)`
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Resolves HDX-2826
Had a couple of files with large fixes, I tested AutocompleteInput.tsx and SessionSubpanel.tsx quite a bit. Tested most others as well. I didn't act on some due to either a) correct usage or b) they are stable and I don't want to alter it. In both those cases, I added `eslint-disable-next-line` before each relevant line References HDX-2955
<img width="1369" height="1157" alt="image" src="https://github.com/user-attachments/assets/592640b1-9e24-426d-886b-a3afb51410aa" /> Fixes HDX-2282
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Moved the inline goose CLI script to its own go script. For the seed DDLs, we don’t create the version tables, and they should all be idempotent.
Co-authored-by: Aaron Knudtson <87577305+knudtty@users.noreply.github.com> Co-authored-by: Warren Lee <5959690+wrn14897@users.noreply.github.com>
…ollector) (#1720) - Users can configure table TTLs via `HYPERDX_OTEL_EXPORTER_TABLES_TTL`, which defaults to 720h. - Add TTL to metric tables Ref: HDX-3365
Closes HDX-3361 # Summary This PR prevents various query errors caused by references to `bodyExpression` on trace sources. The `bodyExpression` should not exist on trace sources, and cannot be edited in the source form. Despite that, the `bodyExpression` would be set on trace sources during source inference. - The `getEventBody` helper function will now correctly use the `spanNameExpression` field instead for trace sources. A few direct references to `bodyExpression` have been updated to `getEventBody` calls. - Source configuration inference will no longer populate the `bodyExpression` for trace sources, and the default trace source will not be created with a `bodyExpression`.
Fixes: HDX-3351 Saves search filters with Saved Searches
HDX-3318 # Summary This PR adds a `GET /sources` endpoint to the external API. This is intended to be a way for users to retrieve the list of available sources, so that they can use a correct source ID when creating or updating dashboards through the external API. Previously, the user had no easy way to view source IDs. Create/Update/Delete source endpoints may be added in subsequent iterations. There will be a related PR in control-plane to add this to the OpenAPI. <img width="2126" height="1345" alt="Screenshot 2026-02-11 at 10 37 54 AM" src="https://github.com/user-attachments/assets/bd5ba25f-75df-495a-a25f-95b3a6a5cae2" /> ``` curl --request GET \ --url http://localhost:8000/api/v2/sources \ --header 'authorization: Bearer <API Key>' ```
- Upgrade OTel collector-contrib and opampsupervisor from 0.136.0 to 0.145.0 to resolve Go stdlib CVEs from outdated binaries - Pin Alpine base to 3.21 with fresh digest replacing stale alpine:latest pin - Add HEALTHCHECK to both dev and prod stages using the health_check extension on port 13133 - Fix Makefile otel-collector build targets to use repo-root context with -f flag, matching the repo-root relative COPY paths Followup from #1697 #1698
References HDX-3265 Closes HDX-3389 Adds a build that we can use in ClickHouse. This build enables bundling HyperDX with ClickHouse ClickHouse/ClickHouse#96597
- Remove unused `nextra` and `nextra-theme-docs` dependencies from packages/app - No .mdx content pages existed — nextra was only wired up as configuration with no actual consumers
Fixes HDX-3387 In the external api, I renamed `filters[...].source` to `sourceId` to match tiles which also need a `sourceId`.
Regression from #1717
TLDR: This PR changes playwright full-stack tests to run against a local clickhouse instance (with seeded data) instead of relying on the clickhouse demo server, which can be unpredictable at times. This workflow allows us to fully control the data to make tests more predictable. This PR: * Adds local CH instance to the e2e dockerfile * Adds a schema creation script * Adds a data seeding script * Updates playwright config * Updates various tests to change hardcoded fields, metrics, or areas relying on play demo data * Updates github workflow to use the dockerfile instead of separate services * Runs against a local clickhouse instead of the demo server Fixes: HDX-3193
Updates base images and patches vulnerable dependencies: - Node.js 22.16.0 -> 22.22-alpine - Go 1.25 -> 1.26-alpine - Express 4.19.2 -> 4.22.1 - Cookie, send, serve-static, and other npm packages - Fix ENV format warnings in Dockerfile Reduces vulnerabilities from 178 to 168 (9C, 52H, 98M, 9L). Tested: all services start correctly, health checks pass.
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
# Summary The buttons within the service map tooltips were hard to recognize as buttons/links. I've added an icon and give them a hover state. ## Before <img width="277" height="124" alt="Screenshot 2026-02-13 at 2 28 14 PM" src="https://github.com/user-attachments/assets/256b0b7d-b6eb-44e6-8a69-c0bf2b15db17" /> ## After <img width="202" height="197" alt="Screenshot 2026-02-13 at 2 27 26 PM" src="https://github.com/user-attachments/assets/27e26ff9-b644-4d14-8217-cf4e7fd53d84" />
Reorder RootValueExpressionSchema Zod union branches so the quantile/histogram branch (with required `level` field) is checked before the general branch. Previously, `aggFn: 'quantile'` matched the general branch first, causing `level` to be stripped during schema parsing. Fixes #1734
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )