v3.5.0

canove/whaticket-communityv3.5.0Jun 23, 2026by bijin-bruno

AI Summary

This is a feature-rich release for usebruno/bruno that includes numerous enhancements for API testing, import functionality, and UI improvements. The release addresses many bugs and adds new capabilities.

Key Highlights

  • Supports annotations for secret environment variables
  • Shows scripted requests in timeline
  • Adds npm package report and installation support
  • Enhances import functionality with issue tracking
  • Adds multi-file upload in multipart form bodies
  • Adds missing status assertions and .not negation support
  • Adds benchmark framework for collection mount performance

New Features

  • Secret environment variable annotations
  • Scripted request timeline display
  • npm package reporting and installation
  • Multi-file upload support
  • Status assertions and negation support
  • Collection mount performance benchmarking

Full Release Notes

# Changelog

## Features
- feat: support annotations for secret environment variables in `bru` and preserve variable value type in `yml` by @lohit-bruno in [#8251](https://github.com/usebruno/bruno/pull/8251)
- feat: show scripted requests in timeline by @pooja-bruno in [#8047](https://github.com/usebruno/bruno/pull/8047)
- feat: npm package report and installation support by @naman-bruno in [#8143](https://github.com/usebruno/bruno/pull/8143)
- feat(import): enhance import functionality with issue tracking and logging by @sanish-bruno in [#8098](https://github.com/usebruno/bruno/pull/8098)
- feat: import modal revamp by @prateek-bruno in [#8121](https://github.com/usebruno/bruno/pull/8121)
- feat: add support for duplicate request url + type in OpenAPI spec by @prateek-bruno in [#8028](https://github.com/usebruno/bruno/pull/8028)
- feat: multi-file upload in multipart form body by @pooja-bruno in [#7971](https://github.com/usebruno/bruno/pull/7971)
- feat: add bru.hasGlobalEnvVar method and update translations by @sanish-bruno in [#8037](https://github.com/usebruno/bruno/pull/8037)
- feat(cli): add Docker Compose example for the Bruno CLI Docker image by @sundram-bruno in [#8036](https://github.com/usebruno/bruno/pull/8036)
- feat: add default http protocol when URL scheme is missing by @KanhaiyaPandey in [#7786](https://github.com/usebruno/bruno/pull/7786)
- feat: add missing status assertions and .not negation support by @sanish-bruno in [#7660](https://github.com/usebruno/bruno/pull/7660)
- feat: add benchmark framework for collection mount performance by @chirag-bruno in [#7915](https://github.com/usebruno/bruno/pull/7915)
- feat: open in terminal from manage workspace by @prateek-bruno in [#7877](https://github.com/usebruno/bruno/pull/7877)
- feat: Stabilize variable info editor transition and popup lifecycle by @sid-bruno in [#7912](https://github.com/usebruno/bruno/pull/7912)
- feat: add v4 migration heads-up tab + indicator by @prateek-bruno
- feat: add cli migration ui for script by @prateek-bruno
- feat: honor system PAC config for license requests by @pooja-bruno

## Fixes
- fix(workspace): keep workspace nav tabs visible when editing docs by @gopu-bruno in [#8249](https://github.com/usebruno/bruno/pull/8249)
- fix(apispec): prevent crash on non-array specs and fix Windows spec listing (BRU-3556) by @sundram-bruno in [#8255](https://github.com/usebruno/bruno/pull/8255)
- fix(timeline): scope scripted requests to their own request by @pooja-bruno in [#8210](https://github.com/usebruno/bruno/pull/8210)
- fix(snapshot): folder nested script tab interactivity and tests by @sid-bruno in [#8225](https://github.com/usebruno/bruno/pull/8225)
- fix(electron): Install packages dialog reports npm not on PATH when Node.js and npm are installed by @utkarsh-bruno in [#8253](https://github.com/usebruno/bruno/pull/8253)
- fix(proxy): refresh cached PAC content on demand by @pooja-bruno in [#8173](https://github.com/usebruno/bruno/pull/8173)
- fix(openapi-export): openapi spec export crash on websocket request by @prateek-bruno in [#8132](https://github.com/usebruno/bruno/pull/8132)
- fix(proxy): proxy config export from v2 to import in v3 by @abhishekp-bruno in [#8112](https://github.com/usebruno/bruno/pull/8112)
- fix(app): preserve multipart file values when creating example from r… by @pooja-bruno in [#8129](https://github.com/usebruno/bruno/pull/8129)
- fix(app): make SwaggerUI "Try it out" work cross-origin in API Spec viewer (BRU-3300) by @sundram-bruno in [#8109](https://github.com/usebruno/bruno/pull/8109)
- fix(workspace): open success toast on cancel by @DeviSriSaiCharan and @abhishekp-bruno in [#8146](https://github.com/usebruno/bruno/pull/8146)
- fix(cli): enhancement --bail flag not stopping execution when a test fails by @sharan-bruno in [#8103](https://github.com/usebruno/bruno/pull/8103)
- fix(import): preserve special chars in OpenAPI tag/folder names for yml collections by @sundram-bruno in [#8123](https://github.com/usebruno/bruno/pull/8123)
- fix(proxy): honor OS-level PAC configuration in system proxy mode by @pooja-bruno in [#7766](https://github.com/usebruno/bruno/pull/7766)
- fix(app): null-safe OAuth2 scope in OpenAPI export (BRU-3297) by @sundram-bruno in [#8086](https://github.com/usebruno/bruno/pull/8086)
- fix: varinfo drag-select dismiss by @shubh-bruno in [#8070](https://github.com/usebruno/bruno/pull/8070)
- fix(import): pm.setNextRequest(null) not translating to bru.runner.stopExecution() by @sharan-bruno in [#8049](https://github.com/usebruno/bruno/pull/8049)
- fix: select overview tab when closing all tabs by @naman-bruno in [#8026](https://github.com/usebruno/bruno/pull/8026)
- fix: relative path getting stored as absolute on windows by @prateek-bruno in [#7895](https://github.com/usebruno/bruno/pull/7895)
- fix: allow users to clear the cache, adds environment tests and re-serialization addition by @sid-bruno in [#8035](https://github.com/usebruno/bruno/pull/8035)
- fix: preserve stream-backed file bodies during request interpolation by @hriztam and @sid-bruno in [#7939](https://github.com/usebruno/bruno/pull/7939)
- fix: workspace home icon alignment in title bar when already fullscreen by @gopu-bruno in [#7967](https://github.com/usebruno/bruno/pull/7967)
- fix: restore saved credentials when switching back to original auth mode by @pooja-bruno in [#7911](https://github.com/usebruno/bruno/pull/7911)
- fix: normalize select file labels by @mturac in [#8021](https://github.com/usebruno/bruno/pull/8021)
- fix: refresh code editor and query editor on resize by @prateek-bruno in [#7889](https://github.com/usebruno/bruno/pull/7889)
- fix: file streaming for multipart bodies by @shubh-bruno in [#7998](https://github.com/usebruno/bruno/pull/7998)
- fix(import): Postman import ignores API Key "in" placement setting and defaults to header by @sharan-bruno in [#7968](https://github.com/usebruno/bruno/pull/7968)
- fix: handle empty mime type in insomnia importer by @prateek-bruno in [#7828](https://github.com/usebruno/bruno/pull/7828)
- fix: show whitespace-only error on Create workspace and collection modal by @prateek-bruno in [#7883](https://github.com/usebruno/bruno/pull/7883)
- fix(bruno-electron): interpolate auth headers for GraphQL introspection request by @phoval in [#5560](https://github.com/usebruno/bruno/pull/5560)
- fix(git): check only enabled for GitHub readiness on Git Home by @utkarsh-bruno
- fix(reporter): handle NaN values for total controls/tests in HTML report during --bail runs by @sharan-bruno
- fix(cli): enhancement in CLI (bail flag not stopping execution when a test fails in a csv file) by @sharan-bruno
- fix(ui): refresh git ui when files in collections change by @prateek-bruno
- fix: unintended file explorer trigger when clicking on create OpenAPI Spec by @pooja-bruno


## Others
- chore: security updates by @sid-bruno in [#8193](https://github.com/usebruno/bruno/pull/8193)
- docs(cli): polish Docker Hub README rendering — absolute links, blockquote restructure, streamline steps by @sundram-bruno in [#8064](https://github.com/usebruno/bruno/pull/8064)
- chore: add stack trace to boundary by @sid-bruno in [#8040](https://github.com/usebruno/bruno/pull/8040)
- ai: coding standards for e2e tests by @sid-bruno in [#7973](https://github.com/usebruno/bruno/pull/7973)
- add(telemetry): add partial import tracking to session_activity event by @sanish-bruno
- refactor: git watcher by @prateek-bruno
- update onboarding experience by @naman-bruno

## New Contributors
* @hriztam made their first contribution in https://github.com/usebruno/bruno/pull/7690
* @mturac made their first contribution in https://github.com/usebruno/bruno/pull/8021
* @KanhaiyaPandey made their first contribution in https://github.com/usebruno/bruno/pull/7786
* @abhishekp-bruno made their first contribution in https://github.com/usebruno/bruno/pull/8146
* @DeviSriSaiCharan made their first contribution in https://github.com/usebruno/bruno/pull/8096
* @bhavik168 made thrie first contribution in https://github.com/usebruno/bruno/pull/8245

**Full Changelog:** https://github.com/usebruno/bruno/compare/v3.4.2...v3.5.0