Skip to content

feat: add groupByColumnsOnLeft to MCP dashboard table tile schema - #2198

Merged
kodiakhq[bot] merged 4 commits into
mainfrom
alex/HDX-mcp-groupby-lhs
May 6, 2026
Merged

kodiakhq[bot] merged 4 commits into
mainfrom
alex/HDX-mcp-groupby-lhs

Conversation

@alex-fedotyev

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #2149. Drew added groupByColumnsOnLeft to the
external-API table chart config and to the conversion path in #2149,
but the MCP hyperdx_save_dashboard tool did not advertise the field
on its table-tile schema. As a result, MCP clients had no way to
discover or set the option, even though the underlying save / fetch
plumbing already supports it.

This change adds the field to mcpTableTileSchema.config and extends
the existing multi-tile MCP test to assert a table tile with
groupByColumnsOnLeft: true round-trips through hyperdx_save_dashboard.

Test plan

  • yarn tsc --noEmit clean in packages/api
  • yarn lint clean in packages/api
  • Existing MCP dashboard suite passes; the should create a dashboard with multiple tile types row now also asserts groupByColumnsOnLeft on the table tile round-trips
  • External API tests covering groupByColumnsOnLeft round-trip still pass (no change to that surface; verified locally)

Surfaces the table-tile display option that PR #2149 added to the
external API to MCP clients. The conversion path already round-trips
the field; this advertises it on the MCP table tile schema and
extends the existing multi-tile MCP test to assert the value
survives save -> fetch.

Follow-up to #2149.
@vercel

vercel Bot commented May 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hyperdx-oss Ready Ready Preview, Comment May 6, 2026 7:58pm

Request Review

@changeset-bot

changeset-bot Bot commented May 5, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e609709

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
@hyperdx/api Patch
@hyperdx/app Patch
@hyperdx/otel-collector Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions Bot added the review/tier-2 Low risk — AI review + quick human skim label May 5, 2026
@github-actions

github-actions Bot commented May 5, 2026 •

Copy link
Copy Markdown
Contributor

🔵 Tier 2 — Low Risk

Small, isolated change with no API route or data model modifications.

Why this tier:

  • Standard feature/fix — introduces new logic or modifies core functionality

Review process: AI review + quick human skim (target: 5–15 min). Reviewer validates AI assessment and checks for domain-specific concerns.
SLA: Resolve within 4 business hours.

Stats
  • Production files changed: 1
  • Production lines changed: 7 (+ 8 in test files, excluded from tier calculation)
  • Branch: alex/HDX-mcp-groupby-lhs
  • Author: alex-fedotyev

To override this classification, remove the review/tier-2 label and apply a different review/tier-* label. Manual overrides are preserved on subsequent pushes.

@github-actions

github-actions Bot commented May 5, 2026 •

Copy link
Copy Markdown
Contributor

PR Review

✅ No critical issues found.

Small, well-scoped follow-up that closes a real gap: the MCP table tile schema now exposes groupByColumnsOnLeft, matching what the external-API conversion path (external-api/v2/utils/dashboards.ts:244,426) and the underlying tile spec (utils/zod.ts:266) already accept. The test extension asserts a meaningful round-trip (groupByColumnsOnLeft: true survives save → fetch).

Minor observations (non-blocking):

  • The added test case sets both groupBy: 'SpanName' and groupByColumnsOnLeft: true, but only asserts the latter on read-back. Optionally also assert groupBy round-trips, since the new groupByColumnsOnLeft is only meaningful when there is a groupBy.
  • Description says "Default false" — strictly the field is optional() with no default, so the value is undefined unless set. The description is fine for users (the renderer treats absent as right-side), just noting it's not literally defaulted in the schema.

@github-actions

github-actions Bot commented May 5, 2026 •

Copy link
Copy Markdown
Contributor

E2E Test Results

✅ All tests passed • 164 passed • 3 skipped • 1113s

Status Count
✅ Passed 164
❌ Failed 0
⚠️ Flaky 5
⏭️ Skipped 3

Tests ran across 4 shards in parallel.

View full report →

@alex-fedotyev

Copy link
Copy Markdown
Contributor Author

Good catch. Added expect(tableTile).toBeDefined() in 3de9c9a.

@kodiakhq
kodiakhq Bot merged commit 1c73d0c into main May 6, 2026
18 checks passed
@kodiakhq
kodiakhq Bot deleted the alex/HDX-mcp-groupby-lhs branch May 6, 2026 20:03

This branch was successfully deployed

1 active deployment
Preview — e609709e Deployed May 6, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automerge review/tier-2 Low risk — AI review + quick human skim

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants