feat: Response actions (copy, download, clear, change layout) with responsive collapse (BRU-3765) - #16
Merged
arpit-bruno merged 6 commits intoJul 30, 2026
Conversation
vasharma05-bruno
force-pushed
the
bru-3765-response-actions
branch
2 times, most recently
from
July 29, 2026 12:54
5f422ab to
c494df5
Compare
vasharma05-bruno
marked this pull request as ready for review
July 29, 2026 12:54
vasharma05-bruno
force-pushed
the
bru-3765-response-actions
branch
2 times, most recently
from
July 29, 2026 19:16
c03e28b to
e1149ff
Compare
…out) Add a response-actions toolbar to the response pane with copy, download, clear, and change-layout controls, collapsing into a menu when the pane is narrow. Wire the large-response banner to the same copy/download actions alongside the existing warning icon and view control. Copy mirrors bruno-app: disabled when the response has no text body, and never writes "undefined" to the clipboard. Response bodies decode from their base64 buffer before formatting so the JSON view never shows raw base64. Downloads type the bytes as Uint8Array for Blob construction.
vasharma05-bruno
force-pushed
the
bru-3765-response-actions
branch
from
July 29, 2026 19:37
e1149ff to
734b90f
Compare
…-3765) Large responses withheld base64Data (only their display formatting is deferred behind the reveal warning), which left the Large Response Warning banner's Download/Copy actions permanently disabled. Extract base64 for large bodies too; keep skipping it only for small plain-text/SVG bodies that already carry their own bytes.
Contributor
Contributor
Author
|
Hi @sachin-bruno, as per findings, and our discussion, the font size of the editor is 12px only. In the above screenshot, this is a preview mode of HTML, which means the above content is being rendered in an Thanks! |
…es (BRU-3765) The response tab overflow split budgeted against the right slot's LIVE width, which changes as the trailing actions block collapses to a kebab or expands to inline buttons; that collapse decision in turn depended on the split, so the two fed back on each other and oscillated at a boundary — remounting the "⋯ more" button every frame (a 30s e2e hang after the right section was slimmed down). Budget the split against the right slot's MODELED expanded width, and key the collapse decision to the container width vs the whole tab row rather than the split's own visible/overflow result, so neither output feeds its own input. Observe only the container, matching bruno-app's ResponsiveTabs. Also harden the response-body re-render e2e with a layout-agnostic tab-switch helper (waits for the switch to settle), and add test ids to the response-actions wrapper so the e2e POM targets them instead of CSS classes.
sachin-bruno
approved these changes
Jul 30, 2026
arpit-bruno
approved these changes
Jul 30, 2026
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.

What
Wires up the playground Response pane action buttons and makes them responsive.
Actions
Content-Disposition, the URL path, or a content-type → extension fallbackResponsive collapse
Ports bruno-app's tab-bar behavior: the actions render as inline buttons when the tab bar's right slot has room and collapse into a kebab (⋯) menu when the pane is too narrow, so the response tabs stay usable.
ActionIconnow forwards its ref so the (Tippy-based) menu anchors correctly.Other
formatResponseavoids a redundant base64 decode / full UTF-8 conversion forbase64/hexmodesTesting
npm run test:run)response-actionsandresponse-bodyPlaywright specs pass (send-mocked, run against a worktree-local server); response-actions verified with--repeat-each=3(no flakiness)