# Bruno: what changed from 3 to 4 - Product: Bruno (https://whatsnew.fyi/product/bruno) - Vendor: Bruno - Range: changelog entries numbered after v3.5.3 up to and including v4.1.0, stable releases only - Entries below: 2 releases (newest first) - Resolved: 3 is v3.5.3 and 4 is v4.1.0, the newest stable release of each major we track - Carrying security changes: 0 · CVEs mentioned: 0 · Mentioning breaking changes: 0 · Removing or deprecating something: 0 - Page: https://whatsnew.fyi/product/bruno/compare/3...4 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## What changed (54 changes, grouped by kind) ### Added #### v4.1.0 (2026-08-20) - Mock Server implementation - Rich text docs editor - Add --global-env-var flag to override global environment variables at runtime in CLI - Global client certs and ability to disable individual client certs - Handle authorization header leaks to third party servers on redirect - Search filter to environment selector dropdown - Default env to presets - Support drag-and-drop and alphabetical sorting for variables - Sorting to the secrets tab - Open multiple collections from a monorepo - Description text to open collection selection modal - GCP Secret Manager support - Git remote operation modals and enhanced branch selection UI - Git proxy environment configuration - Network config for git provider APIs - Inform user when edits are being made on protected branches - Warning about unsynced collections excluded from Fetch in Bruno embed - Report app version, OS, arch and telemetry id on licence calls #### v4.0.0 (2026-07-23) - Migrate ctx API to bru.ctx - Show human-readable size for unloaded requests in overview - File binary description implementation - AI model handling with reasoning support - Variable descriptions - Active workspace tab type tracking - Option to edit bruno version in collection overview - Akamai auth integration - Security preferences management to AI settings - Collection name to generate doc modal with minor UI changes - Persist env, global-env, and collection variable changes from scripts in CLI - Set yml as default file format across all types of imports - Pkg configuration for installation location in Electron - Persist scripted variable changes by default and re-enable disabled scripting APIs - AI mode toggle UI and add AI support for folder and collection - Split variables and secrets into separate tabs in environments - AI chat sidebar with code block and diff view components - OpenAI-compatible endpoints support for AI - WOOF easter egg - App functionality - Resizable columns in network panel ### Changed #### v4.1.0 (2026-08-20) - Updated presets design - Updated dropdown with menu dropdown and label weight UX changes ### Fixed #### v4.1.0 (2026-08-20) - Stop AWS V4 auth headers from leaking on cross-origin redirects - Block duplicate secret names to prevent value loss - Global environment variables for apps - Re-add new request shortcut - Stopped the same collection from rendering twice with conflicting status - Show only the remove option for the failed collection in workspace overview - Notify about collections that fail to open in workspace - Switch to default workspace on close so header shows correct name - Fixed search and replace input border in editor - Tab indentation on code blocks - Add guessed language in language dropdown picker - Allow app keybindings if that keybinding is not present in rich text editor - Warn when binary body file is missing on disk ## Release notes ### v4.1.0 - Date: 2026-08-20 - Version: v4.1.0 - Original notes: https://github.com/usebruno/bruno/releases/tag/v4.1.0 - Permalink: https://whatsnew.fyi/product/bruno/releases/v4.1.0 - **added** — Mock Server implementation - **added** — Rich text docs editor - **added** — Add --global-env-var flag to override global environment variables at runtime in CLI - **added** — Global client certs and ability to disable individual client certs - **added** — Handle authorization header leaks to third party servers on redirect - **added** — Search filter to environment selector dropdown - **added** — Default env to presets - **added** — Support drag-and-drop and alphabetical sorting for variables - **added** — Sorting to the secrets tab - **added** — Open multiple collections from a monorepo - **added** — Description text to open collection selection modal - **added** — GCP Secret Manager support - **added** — Git remote operation modals and enhanced branch selection UI - **added** — Git proxy environment configuration - **added** — Network config for git provider APIs - **added** — Inform user when edits are being made on protected branches - **added** — Warning about unsynced collections excluded from Fetch in Bruno embed - **added** — Report app version, OS, arch and telemetry id on licence calls - **changed** — Updated presets design - **changed** — Updated dropdown with menu dropdown and label weight UX changes - **fixed** — Stop AWS V4 auth headers from leaking on cross-origin redirects - **fixed** — Block duplicate secret names to prevent value loss - **fixed** — Global environment variables for apps - **fixed** — Re-add new request shortcut - **fixed** — Stopped the same collection from rendering twice with conflicting status - **fixed** — Show only the remove option for the failed collection in workspace overview - **fixed** — Notify about collections that fail to open in workspace - **fixed** — Switch to default workspace on close so header shows correct name - **fixed** — Fixed search and replace input border in editor - **fixed** — Tab indentation on code blocks - **fixed** — Add guessed language in language dropdown picker - **fixed** — Allow app keybindings if that keybinding is not present in rich text editor - **fixed** — Warn when binary body file is missing on disk #### Changelog ###### Features - feat: Mock Server implementation by @utkarsh-bruno and @shubh-bruno in [#8734](https://github.com/usebruno/bruno/pull/8734) - feat(docs): Rich text docs editor by @Gopi-bruno in [#8559](https://github.com/usebruno/bruno/pull/8559) - feat(cli): add --global-env-var to override global environment variables at runtime by @abhishekp-bruno in [#8620](https://github.com/usebruno/bruno/pull/8620) - feat(client certs): add global client certs and allow disabling individual client certs. by @morsh-bruno in [#8751](https://github.com/usebruno/bruno/pull/8751) - feat(auth-headers): handling authorization header leaks to third party servers on redirect by @Gopi-bruno in [#8380](https://github.com/usebruno/bruno/pull/8380) - feat(envs): adding search filter to environment selector dropdown by @Gopi-bruno in [#8277](https://github.com/usebruno/bruno/pull/8277) - feat(environment): add default env to presets by @sachin-thakur-bruno in [#8612](https://github.com/usebruno/bruno/pull/8612) - feat: support drag-and-drop and alphabetical sorting for variables by @adwait-bruno in [#8603](https://github.com/usebruno/bruno/pull/8603) - feat: add sorting to the secrets tab as well by @adwait-bruno in [#8871](https://github.com/usebruno/bruno/pull/8871) - feat(collections): open multiple collections from a monorepo by @gopu-bruno in [#8724](https://github.com/usebruno/bruno/pull/8724) - feat(collections): add description text to open collection selection modal by @gopu-bruno in [#8793](https://github.com/usebruno/bruno/pull/8793) - feat(presets): updated presets design by @sachin-thakur-bruno in [#8828](https://github.com/usebruno/bruno/pull/8828) - feat(presets): updated dropdown with menu dropdown and label weight ux changes by @sachin-thakur-bruno in [#8841](https://github.com/usebruno/bruno/pull/8841) - feat(migrate): enhance migration modal to handle collection drafts by @naman-bruno in [#8899](https://github.com/usebruno/bruno/pull/8899) - feat: add migrate-to-YML pill to collection header by @naman-bruno in [#8882](https://github.com/usebruno/bruno/pull/8882) - feat(converters): add support for script execution flow in yml configuration by @naman-bruno in [#8745](https://github.com/usebruno/bruno/pull/8745) - feat: add preserve scripts option for Postman import/export by @gopu-bruno in [#8726](https://github.com/usebruno/bruno/pull/8726) - feat(snapshot): persisting sidebar state in the snapshot by @Gopi-bruno in [#8328](https://github.com/usebruno/bruno/pull/8328) - feat(code-mirror-search): add replace and replace-all with search position, debouncing and tests by @sachin-thakur-bruno in [#8715](https://github.com/usebruno/bruno/pull/8715) - feat(db): sqlite as a re-usable SDK for secondary queries by @chirag-bruno in [#8533](https://github.com/usebruno/bruno/pull/8533) - feat(request): warn when binary body file is missing on disk by @sanish-bruno and @rajashreehj-bruno in [#8753](https://github.com/usebruno/bruno/pull/8753) - feat(size/M): Default to no environments selected in the Generate Documentation modal by @sachin-bruno in [#8785](https://github.com/usebruno/bruno/pull/8785) - feat(ai): add focus for prompt input after AI response completion by @naman-bruno in [#8747](https://github.com/usebruno/bruno/pull/8747) - feat(secrets): add GCP Secret Manager support by @abhishekp-bruno - feat(git): implement Git remote operation modals and enhance branch selection UI by @utkarsh-bruno - feat(proxy): implement Git proxy environment configuration by @utkarsh-bruno - feat(git-providers): apply network config for git provider APIs by @gopu-bruno - feat(app/git): inform the user that edits are being made on protected branches by @sid-bruno - feat(workspace): warning about unsynced collections excluded from Fetch in Bruno embed by @ravindra-bruno - feat(license): report app version, OS, arch and telemetry id on licence calls by @hassan-bruno ###### Fixes - fix(auth): stop AWS V4 _[Truncated at 4000 characters — full notes: https://github.com/usebruno/bruno/releases/tag/v4.1.0]_ ### v4.0.0 - Date: 2026-07-23 - Version: v4.0.0 - Original notes: https://github.com/usebruno/bruno/releases/tag/v4.0.0 - Permalink: https://whatsnew.fyi/product/bruno/releases/v4.0.0 - **added** — Migrate ctx API to bru.ctx - **added** — Show human-readable size for unloaded requests in overview - **added** — File binary description implementation - **added** — AI model handling with reasoning support - **added** — Variable descriptions - **added** — Active workspace tab type tracking - **added** — Option to edit bruno version in collection overview - **added** — Akamai auth integration - **added** — Security preferences management to AI settings - **added** — Collection name to generate doc modal with minor UI changes - **added** — Persist env, global-env, and collection variable changes from scripts in CLI - **added** — Set yml as default file format across all types of imports - **added** — Pkg configuration for installation location in Electron - **added** — Persist scripted variable changes by default and re-enable disabled scripting APIs - **added** — AI mode toggle UI and add AI support for folder and collection - **added** — Split variables and secrets into separate tabs in environments - **added** — AI chat sidebar with code block and diff view components - **added** — OpenAI-compatible endpoints support for AI - **added** — WOOF easter egg - **added** — App functionality - **added** — Resizable columns in network panel #### Changelog ###### Features - feat(app): migrate ctx API to bru.ctx by @gopu-bruno in [#8557](https://github.com/usebruno/bruno/pull/8557) - feat(overview): show human-readable size for unloaded requests by @chirag-bruno in [#8580](https://github.com/usebruno/bruno/pull/8580) - feat(description): file binary description implementation by @sid-bruno in [#8434](https://github.com/usebruno/bruno/pull/8434) - feat(ai): AI model handling with reasoning support by @naman-bruno in [#8539](https://github.com/usebruno/bruno/pull/8539) - feat: variable descriptions by @sid-bruno in [#8269](https://github.com/usebruno/bruno/pull/8269) - feat(snapshot): implement active workspace tab type tracking by @sid-bruno in [#8487](https://github.com/usebruno/bruno/pull/8487) - feat: Added the option for bruno version edit in the collection overview by @sachin-bruno in [#8424](https://github.com/usebruno/bruno/pull/8424) - feat(auth): akamai auth integration by @shubh-bruno in [#8199](https://github.com/usebruno/bruno/pull/8199) - feat(ai): add security preferences management to AI settings by @naman-bruno in [#8453](https://github.com/usebruno/bruno/pull/8453) - feat: Added collection name and minor UI changes to the generate doc modal by @sachin-bruno in [#8391](https://github.com/usebruno/bruno/pull/8391) - feat(cli): persist env, global-env, and collection var changes from scripts by @sanish-bruno in [#8387](https://github.com/usebruno/bruno/pull/8387) - feat(import): set yml as a default file format across all types of imports by @sharan-bruno in [#8363](https://github.com/usebruno/bruno/pull/8363) - feat(electron): add pkg configuration for installation location by @sid-bruno in [#8403](https://github.com/usebruno/bruno/pull/8403) - feat(variables): persist scripted variable changes by default and re-enable disabled scripting APIs by @sanish-bruno in [#8315](https://github.com/usebruno/bruno/pull/8315) - feat(ai): mode toggle UI and add AI support for folder & collection by @naman-bruno in [#8385](https://github.com/usebruno/bruno/pull/8385) - feat(environments): split variables and secrets into separate tabs by @pooja-bruno in [#8191](https://github.com/usebruno/bruno/pull/8191) - feat(ai): add AI chat sidebar with code block and diff view components by @naman-bruno in [#8358](https://github.com/usebruno/bruno/pull/8358) - feat(ai): OpenAI-compatible endpoints support by @naman-bruno in [#8365](https://github.com/usebruno/bruno/pull/8365) - feat(woof): add WOOF easter egg by @sanish-bruno in [#8301](https://github.com/usebruno/bruno/pull/8301) - feat(app): introduce app functionality by @naman-bruno in [#8338](https://github.com/usebruno/bruno/pull/8338) - feat(network-ui): added resizable columns in network panel by @sachin-thakur-bruno in [#8265](https://github.com/usebruno/bruno/pull/8265) - feat: integrate Markdown into NotificationDetail by @naman-bruno in [#8335](https://github.com/usebruno/bruno/pull/8335) - feat(ai): implement AI autocomplete by @naman-bruno in [#8300](https://github.com/usebruno/bruno/pull/8300) - feat: add cli offline bundle script by @sid-bruno in [#8192](https://github.com/usebruno/bruno/pull/8192) - feat: faster collection mount via file cache (Beta) by @chirag-bruno in [#8222](https://github.com/usebruno/bruno/pull/8222) - feat(ai-assist): add docs generation with folder and collection context by @utkarsh-bruno and @ravindra-bruno in [#8246](https://github.com/usebruno/bruno/pull/8246) - feat: Choose environments to include and show versions in the Generate Documentation modal by @sachin-bruno in [#8268](https://github.com/usebruno/bruno/pull/8268) - feat: variable `data types` support by @lohit-bruno in [#8046](https://github.com/usebruno/bruno/pull/8046) - feat: redesign notification modal by @prateek-bruno in [#8140](https://github.com/usebruno/bruno/pull/8140) - feat(websocket): show full message name in a tooltip on hover by @pooja-bruno in [#8299](https://github.com/use _[Truncated at 4000 characters — full notes: https://github.com/usebruno/bruno/releases/tag/v4.0.0]_