* feat: add gRPC proxy support
* fix: respect channelOptions grpc.primary_user_agent over User-Agent header
* fix: remove non-standard grpc_proxy/no_grpc_proxy env var support
These are not recognized by any standard gRPC implementation. gRPC proxy
now uses the standard http_proxy/https_proxy/no_proxy variables like
grpc-core, grpc-go, and grpc-java.
* chore: add resolveGrpcProxyConfig tests and clean up grpc-client
Export resolveGrpcProxyConfig for testability and add unit tests covering
all proxy modes (off, on, system), auth encoding, protocol rejection,
bypass lists, and edge cases. Remove redundant cancelAndCloseConnection
call in startConnection (already guarded by addConnection). Document why
internal @grpc/grpc-js channel options are used for programmatic proxy.
* feat: enhance ScriptError with source context, code snippets, and navigation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: remove auto-commenting of untranslated pm commands during import
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: update CodeSnippet styles to use theme colors for error and warning highlights
* fix: remove unused SCRIPT_TYPES import from network IPC module
* refactor: remove unused functions and clean up source-context utility
- Removed `getUnifiedScriptContext`, `getWarningSourceGroups`, and related helper functions from `source-context.js` to streamline the utility.
- Updated tests in `source-context.spec.js` to reflect the removal of unused functions, ensuring only relevant tests for `findLineInSource` and `getScriptContext` remain.
* refactor: simplify ScriptError component and update styles
* refactor: streamline tab management in Script components
* refactor: enhance tab management in ScriptError and add testsMetadata handling in prepare-request
* refactor: improve error source identification in ScriptError component
- Enhanced the logic for determining error source types by introducing separate checks for folder and collection files.
- Updated the handling of folder file names to ensure accurate UID retrieval and labeling.
- Streamlined the overall structure of the getErrorSourceInfo function for better readability and maintainability.
* refactor: improve ScriptError component and enhance styling
- Simplified the conditions for displaying the ScriptError component in ResponsePane.
- Updated navigation logic in ScriptErrorCard to ensure proper handling of source information.
- Adjusted styles in StyledWrapper to allow for visible overflow.
- Enhanced ScriptErrorIcon to accept additional class names for better styling flexibility.
- Minor layout adjustments in RunnerResults ResponsePane for improved UI consistency.
* refactor: simplify test description for untranslated pm commands and consolidate error formatter imports
* fixes
* refactor: update focusedTab logic in Script components to use collection and folder UIDthe respective collection and folder UID instead of the activeTabUid.
* feat: add buildErrorContext utility for enhanced error handling in network IPC
- Introduced a new utility function `buildErrorContext` to construct detailed error context from script errors.
- This function parses error locations, adjusts line numbers, and retrieves relevant source context, improving error reporting.
- Removed the previous inline error handling logic from the network IPC module to streamline the codebase.
* feat: added playwright test cases to test scriptError behavior
* refactor: enhance ScriptError component and improve error handling
- Updated labels for error source types in ScriptError to be more concise (e.g., "Request Script" to "Request").
- Improved navigation logic in ScriptErrorCard to ensure proper handling of navigable file paths.
- Enhanced styling in StyledWrapper for better visual consistency and user experience.
- Added tests to verify fallback behavior for missing error types and non-navigable file paths.
- Refined utility functions for better context extraction from script errors.
* refactor: normalize file paths for cross-platform compatibility in ScriptError component
* refactor: improve file path handling in ScriptError component
* refactor: enhance buildErrorContext for improved error handling
* docs: add detailed comments to build-error-context for better understanding of error handling
* refactor: enhance error block line detection in error formatter
- Updated `findScriptBlockEndLine` and `findYmlScriptBlockEndLine` functions to return null for empty or missing blocks, improving accuracy in line detection.
- Added comprehensive tests for both functions to ensure correct behavior across various scenarios, including handling of non-.bru and non-.yml files.
* refactor: improve error handling and testing in ScriptError and buildErrorContext
- Updated ScriptError component to streamline tab management by replacing focusTab with addTab for better request handling.
- Enhanced buildErrorContext to return null for empty or missing script blocks in .bru and .yml files, ensuring accurate error reporting.
- Added tests to validate behavior for empty script blocks and improved error context extraction in various scenarios.
* test: add new tests for script error navigation and handling
- Implemented tests for post-response file-path navigation to the Script tab and verification of active sub-tabs.
- Added keyboard navigation tests to trigger file-path navigation using the Enter key.
- Included a test for multiple error cards to ensure closing one does not affect others.
- Enhanced runner tests to verify navigation to the Tests tab from script error results.
* refactor: enhance CodeSnippet line rendering and remove unused source-context utilities
* refactor: update locators in script-errors tests for improved readability and maintainability
* test: enhance script-errors tests to verify error line content
* review fixes
* refactor: update RunnerResults component and enhance locators for improved testability
* refactor: remove buildErrorContext and replace with formatErrorWithContextV2
- Deleted the buildErrorContext function and its associated tests.
- Updated network IPC to utilize formatErrorWithContextV2 for improved error context handling.
- Enhanced error reporting by ensuring structured error context is returned for desktop UI.
* refactor: enhance tab components with data-testid attributes for improved testability
- Added data-testid attributes to tab elements in CollectionSettings and FolderSettings components for better integration with testing frameworks.
- Updated Tabs and ResponsiveTabs components to include data-testid attributes for tab triggers, enhancing the ability to select and verify tabs in tests.
- Modified script-errors tests to utilize new locators for improved readability and maintainability.
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* chore: update saveRequest calls from example to include silent parameter
- Modified multiple components to pass an additional `true` parameter to the `saveRequest` function, ensuring requests are saved silently when it comes to examples.
- Added AGENTS.md to .gitignore to exclude it from version control.
* feat: add success notifications for cloning, renaming and deleting examples
* refactor: update saveRequest calls to handle success notifications for renaming and deleting examples
* refactor: remove unused toast import from DeleteResponseExampleModal
* feat: add SVG support for HTML preview in response format handling
* feat: enhance content type detection by adding support for AVIF and SVG formats
* fix: exclude SVG from byte format type detection in response preview
* feat: add helper function to detect SVG content in response handling
* fix: ensure SVG content type detection is case insensitive and remove EPS detection
* fix: correct byte offset for AVIF content type detection in response handling
* refactor: enhance WSRequestPane and WSResponsePane with ResponsiveTabs component
- Replaced custom tab implementation with ResponsiveTabs for better consistency and usability.
- Utilized useMemo and useCallback for performance optimizations in tab management.
- Cleaned up unused styles and improved error handling in both components.
- Updated StyledWrapper to remove legacy tab styles, streamlining the component structure.
* refactor: streamline authentication components and enhance WSRequestPane layout
- Removed unnecessary margin from StyledWrapper in ApiKeyAuth, BasicAuth, and BearerAuth components for a cleaner layout.
- Introduced a new right content area in WSRequestPane for better organization of authentication modes.
- Added a 'No Auth' view in WSAuth for improved user feedback when no authentication is selected.
- Cleaned up unused imports and optimized component structure for maintainability.
* refactor: simplify HtmlPreview component by extracting render logic into a separate function
* refactor: wrap renderHtmlPreview in a fragment for improved JSX structure
* fix: update preview visibility check in response format tests
* refactor: enhance GrpcRequestPane and GrpcResponsePane with ResponsiveTabs component
- Replaced custom tab implementation with ResponsiveTabs for better structure and usability.
- Utilized useMemo and useCallback for performance optimizations in GrpcRequestPane.
- Removed unused imports and simplified tab management logic.
- Updated StyledWrapper to remove legacy tab styles, improving maintainability.
* fix: handle optional chaining for auth mode in GrpcRequestPane
* feat: enhance GrpcRequestPane and GrpcResponsePane with tab initialization and response count indicators
* refactor: simplify GrpcResponsePane tab management and enhance ResponsiveTabs key handling
- Removed unnecessary useMemo for tab initialization in GrpcResponsePane.
- Updated tab comparison logic in ResponsiveTabs to use key arrays for improved performance.
- Adjusted test locator for response tab count to use role-based selection for better accessibility.
* feat: add support for 'none' auth mode in GrpcAuth and integrate GrpcAuthMode in GrpcRequestPane
- Updated StyledWrapper in ApiKeyAuth, BasicAuth, BearerAuth, OAuth2, WsseAuth, and GrpcAuth components to remove unnecessary margin-top, ensuring a uniform appearance across authentication interfaces.
- Adjusted margin in GrantTypeSelector and WSAuth components for better layout consistency.
* refactor: update import statement and enhance error handling in GrpcRequestPane
- Changed the import of 'find' from lodash to a direct import for better clarity.
- Improved error handling by returning null during initialization when requestPaneTab is not set, ensuring smoother user experience.
* refactor: integrate StyledWrapper in SearchInput for improved styling
* refactor: update StyledWrapper color and adjust margin in GrpcTimelineItem for improved layout consistency
* refactor: remove HTML validation functions and simplify HtmlPreview component logic
* chore: fix playwright - removed body value check since response is rendered in webview
---------
Co-authored-by: Bijin A B <bijin@usebruno.com>
* fix: sse sequence in ipc layer
* fix: remove tick rate and flushing
* fix: added sequence logic for websockets
* fix: added sequence logic for websockets per request based
* fix: correct the order for how the messages are added.
`WSMessagesList` already handles a lot of the ordering for us, don't modify the order the messages are added since redirect and connection are internal states, it changes the execution trail
* chore: reduce whitespace diffs
* fix: a possible null case exception
Though we always create an empty data buffer at source so shouldn't happen unless that is modified
* fix: implement sequence logic for WebSocket messages
* fix: remove unused sequenceState property from WsClient
* fix: update message sorting logic to handle missing sequence numbers
* fix: remove unused lodash import
* fix: add clean method to sequencer for better sequence management
* fix: don't show dropdown when streaming
---------
Co-authored-by: Sid <siddharth@usebruno.com>
* refactor: update color references in OAuth2 components to use theme.primary.text for improved consistency
* refactor: update modal size in ImportCollectionLocation component for improved consistency
* refactor: set isActiveTab prop in QueryResponse component and update active color in StyledWrapper for consistency
* style: update warning icon color in RemoveCollection and ConfirmSwitchEnv components to use theme colors
* fix: font size in BulkEditor
* style: update error message styling to use theme colors in QueryResult component
* style: update warning icon color
* style: update warning color in ConfirmSwitchEnv
* chore: minor pr comment
---------
Co-authored-by: Bijin A B <bijin@usebruno.com>
* style: enhance button layout and input styles across multiple components for improved UI consistency
* style: update RequestsNotLoaded component with new warning styles and enhance theme color definitions for status indicators
* refactor: update theme usage across components for consistency
- Changed color references from theme.brand to theme.primary.text in various StyledWrapper components.
- Added hover effects to enhance UI interactivity in CollectionSettings and FolderSettings.
- Removed unnecessary margin and padding adjustments in several components for cleaner layout.
- Improved accessibility by ensuring aria attributes are correctly set in MenuDropdown.
- Standardized styling for method indicators in RequestPane components.
These changes aim to create a more cohesive look and feel across the application while adhering to the updated theme guidelines.
* refactor: clean up method selector styling in NewRequest component
* chore: temp playwright test fixes
* refactor: update modal sizes across various components for consistency
- Changed modal size from "sm" to "md" in RenameWorkspace, CreateApiSpec, CloneCollection, DeleteCollectionItem, and RenameCollection components.
- Improved styling in HttpMethodSelector by adding padding for better layout.
- Updated theme color references in multiple theme files to use a new palette structure for consistency and maintainability.
* refactor: enhance styling and theme integration in TimelineItem components
- Updated HttpMethodSelector to clarify padding calculation in comments.
- Integrated theme colors for OAuth2 indicator and timestamp in TimelineItem for better visual consistency.
- Adjusted Method component to use uppercase styling for method display.
- Modified RelativeTime component to apply muted text color for improved readability.
- Updated INFO color in dark and light themes for better contrast and accessibility.
* refactor: remove duplicate import statements in theme files
- Cleaned up import statements in vscode.js and light-pastel.js by removing redundant lines for improved code clarity and maintainability.
* refactor: improve styling and theme integration in various components
- Added accent color and cursor style for checkbox inputs in Modal's StyledWrapper.
- Updated border-radius values in HttpMethodSelector and NewRequest StyledWrapper components to use theme variables for consistency.
- Introduced a new textbox class in NewRequest StyledWrapper for better styling control.
- Changed modal size from "sm" to "md" in CreateEnvironment for improved layout.
---------
Co-authored-by: Bijin A B <bijin@usebruno.com>
* fix: use theme styling within timeline
* fix: remove inline styling and use css classes
* fix: network logs within dev tools
* compact timeline for grpc
* refactor: standardize CSS class naming in StyledWrapper components for better readability
* remove styling configuration from Network component
* fix: update colors
* update colors
* fix: color
* fix: theme within grpc timeline
* fix: use font from the theme
* remove y padding to make timeline item more compact
* fix: font
* fix: padding
* fix: use fira code
* fix: icon spacing
* add border to the method search
* show bg for message section within request
* refactor: replace button elements with Button component for consistency and improved styling across various components
* chore: css cleanup
* chore: fix collection doc cancel button
---------
Co-authored-by: Bijin A B <bijin@usebruno.com>
* refactor: update ResponsePane and QueryResultTypeSelector for improved tab handling and styling
- Adjusted the expanded width for right-side action buttons in ResponsePane.
- Refactored view tab toggle logic to enhance clarity and functionality.
- Introduced new styling for result view tabs and dropdown buttons.
- Added icon support for format options in QueryResultTypeSelector, improving visual feedback.
- Implemented dropdown state management to ensure proper interaction with active tabs.
* refactor: remove console log from ResponsePane for cleaner code
- Added Redux state management for response format and view tab in ResponsePane.
- Implemented useCallback hooks for handling format changes and view tab toggling.
- Updated component to utilize persisted values from Redux, improving user experience by maintaining state across sessions.
* Introduced hideResultTypeSelector prop to conditionally render the QueryResultTypeSelector in the QueryResponse component.
* Updated BodyBlock to pass the type prop to control the visibility of the result type selector based on the request or response context.
* Adjusted styling in StyledWrapper for improved layout consistency.
* style: Update padding and margin in StyledWrapper for improved layout; adjust ActionIcon size in ResponseLayoutToggle for better UI consistency; enhance title bar color handling in Electron app
* feat: Enhance AppTitleBar with Windows-specific controls and OS detection
* refactor: Improve OS detection and error handling in AppTitleBar; streamline maximize state management
* feat: Implement IPC communication for maximize/unmaximize events in AppTitleBar; enhance state management in Electron main process
* Refactor dropdown components to use MenuDropdown for improved functionality and keyboard accessibility
- Replaced Dropdown with MenuDropdown in various components including BodyModeSelector, AuthMode, and RequestBodyMode.
- Updated styles and structure for better usability and accessibility.
- Removed unused Dropdown component and its associated styles.
- Enhanced action buttons in ResponsePane and Collection components with ActionIcon for better UI consistency.
* fix: Update HttpMethodSelector styles and tests for improved accessibility
- Changed the class name for the "Add Custom" button to include 'text-link' for better styling.
- Updated tests to use role-based queries for dropdown items, enhancing accessibility checks.
- Ensured the correct application of classes in tests to reflect the updated structure.
* refactor: Improve component accessibility and consistency
* fix: update hover behavior for collection actions menu in runner.ts
* refactor: streamline hover interactions for collection actions across tests
* refactor: enhance component structure and accessibility across response actions
* fix: correct fill property syntax in StyledWrapper for consistent styling
* refactor: simplify isDisabled logic in response components for clarity
* fix: correct tabIndex logic in ResponseCopy component for improved accessibility
* fix: update tabIndex logic in ResponseBookmark component for improved accessibility
* fix: enable action buttons in ResponsePaneActions for improved usability
* refactor: remove unnecessary tabIndex attributes in response components for improved accessibility
* refactor: remove keyDown event handlers from response components for cleaner interaction
* refactor: remove SidebarHeader component and related styles for improved structure
* refactor: update content type detection to use base64 decoding
* fix: some styling issues and autofocus issues in input resolved
* refactor: enhance ResponsePane and QueryResult components for improved response handling and size display
* refactor: simplify size display logic in ResponseSize component
* refactor: improve size formatting logic in ResponseSize component for better readability
* refactor: enhance base64 decoding function to handle invalid input and improve error handling
* fix: Improved logic for determining right side expandability based on container width and provided width.
* refactor: Standardize naming for right-side expandability a
* refactor: Simplify collection interaction in keyboard shortcuts tests
* refactor: Update right-side expandability logic in ResponsiveTabs and StyledWrapper components
* feat: add response data type selector in response viewer
* chore: fixed lint issue
* test: add test for resonse format change and preview.
* refactor: streamline response format tests with utility functions for navigation and format switching
* refactor: simplify ButtonDropdown component and enhance QueryResultTypeSelector with header and toggle switch
* feat: enhance ButtonDropdown with prefix and suffix props; implement content type detection and update QueryResult for improved format handling
* fix: lint errors resolved
* fix: remove unnecessary blank line to resolve lint issues
* fix: update response format tests
* refactor: remove preview tab locator from response format tests
* fix: update dependency in useEffect to include previewFormatOptions for accurate format handling
* refactor: reorganize imports and enhance QueryResult component for improved format handling and error display
* fix: update error messages in response format preview tests and adjust version in JSON fixture
* feat: add drag detection to HtmlPreview component and update structure for improved user interaction
* refactor: update ResponsePane components for improved structure and functionality;
replace QueryResult with QueryResponse, enhance layout handling, and streamline response actions
* refactor: remove ButtonDropdown component and associated styles;
* refactor: moved ErrorAlert to ui folder
* fix: lint error
* feat: add data-testid attributes to Collection and CollectionItem components for improved testability
* feat: hide dropdown on select in response selector
* fix: update QueryResult component to use detectedContentType for format handling
* test: update ResponseLayoutToggle tests to use data-testid for button selection
* feat: add data-testid attribute to ResponseClear component for improved testability
* refactor: implement clickResponseAction utility for streamlined response action handling in tests
* feat: add data-testid attribute to ResponseCopy component for enhanced testability
* fix: unwanted code in test