Skip to content

fix(mcp-logs): add download handler for log records#2298

Merged
malinskibeniamin merged 5 commits intomasterfrom
fix/ux-966-mcp-logs-download
Mar 13, 2026
Merged

fix(mcp-logs): add download handler for log records#2298
malinskibeniamin merged 5 commits intomasterfrom
fix/ux-966-mcp-logs-download

Conversation

@malinskibeniamin
Copy link
Contributor

@malinskibeniamin malinskibeniamin commented Mar 12, 2026

Summary

  • Added onDownloadRecord callback to ExpandedMessage in MCP server logs tab
  • Handler exports the log entry (offset, key, value, timestamp, headers) as a JSON file
  • Fixes the "Download Record" button being non-functional

Test plan

  • Open MCP Servers → select a server → Logs tab
  • Expand a log entry
  • Click "Download Record" → verify a JSON file downloads
  • Verify the downloaded JSON contains the correct log data

Fixes UX-966

🤖 Generated with Claude Code

@malinskibeniamin malinskibeniamin added frontend ui/ux bug Something isn't working labels Mar 12, 2026
@malinskibeniamin malinskibeniamin self-assigned this Mar 12, 2026
malinskibeniamin and others added 2 commits March 12, 2026 17:50
Replace useStore(useApiStore, ...) with useApiStoreHook(...) in license
notification components. Passing a hook as a value argument to another
hook violates React Compiler rules. useApiStoreHook is an existing
wrapper that encapsulates the same call pattern.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ExpandedMessage was rendered without onDownloadRecord, so the
"Download Record" button did nothing. Add a handler that exports
the log entry as a JSON file.

Fixes UX-966

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@malinskibeniamin malinskibeniamin force-pushed the fix/ux-966-mcp-logs-download branch from 047d2e9 to 7de8c72 Compare March 12, 2026 16:59
malinskibeniamin and others added 3 commits March 12, 2026 22:28
Verify that ExpandedMessage calls onDownloadRecord when the
download button is clicked.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The 200ms polling interval was creating new state on every tick even when
messages hadn't changed, combined with 'use no memo' and inline callbacks
causing the entire DataTable and expanded rows to re-render constantly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…zation

Same fix as MCP logs: skip no-op state updates in the 200ms polling
interval, memoize columns/subComponent/filteredMessages, and remove
'use no memo' directive.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@malinskibeniamin malinskibeniamin merged commit c4ce059 into master Mar 13, 2026
11 of 13 checks passed
@malinskibeniamin malinskibeniamin deleted the fix/ux-966-mcp-logs-download branch March 13, 2026 09:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working frontend ui/ux

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants