Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
454 commits
Select commit Hold shift + click to select a range
cb716e5
fix: import ndjson-curl handling binary data check with type file or …
shubh-bruno Feb 19, 2026
ab2a16a
fix: env var edit (#7066)
pooja-bruno Feb 19, 2026
3c585a3
Fix: incorrect translations (#7214)
sanish-bruno Feb 19, 2026
d35394c
fix: consistent button size on save requests modal (#7197)
bastiendmt Feb 19, 2026
d060544
Prevent cursor state loss on empty nextValue (#7180)
K3UL Feb 19, 2026
09b8e8a
fix(cli): preserve request item type during import and fail on unsupp…
rameshsunkara Feb 19, 2026
2fcfdfc
fix: `oauth2 credential` management improvements (#7220)
lohit-bruno Feb 19, 2026
6ea079f
fix: load shell environment variables on app startup (#7223)
lohit-bruno Feb 19, 2026
0376d38
feat: add reveal in file manager option to workspace collections menu…
datlechin Feb 19, 2026
cd33cb7
fix: call initializeShellEnv directly in app ready handler (#7228)
lohit-bruno Feb 19, 2026
dfa1533
fix: updated error message for renaming requests (#7010)
shubh-bruno Feb 20, 2026
7122722
fix: collection reorder not persisting after restart (#7093)
sanjaikumar-bruno Feb 20, 2026
689e0c6
fix: window normlize path comparison (#7240)
naman-bruno Feb 20, 2026
04ef477
feat(CI): refactor github workflow for tests (#7252)
bijin-bruno Feb 22, 2026
89bf2fb
feat: interface zoom control settings (#7255)
shubh-bruno Feb 23, 2026
5bca0cd
fix: openapi cli import (#7028)
pooja-bruno Feb 23, 2026
4e2303e
chore: fix tab selection (#7260)
bijin-bruno Feb 23, 2026
ade4bfb
fix: response viewer not updating when focused (read-only editors) (#…
sanjaikumar-bruno Feb 23, 2026
5c0a49a
fix: handle special characters in collection path for dotenv watcher …
pooja-bruno Feb 24, 2026
8d301df
fix: normalize collection pathnames in EnvironmentSecretsStore (#7283)
naman-bruno Feb 24, 2026
ce15fbb
fix: phone number faker function (#7046)
pooja-bruno Feb 25, 2026
e950640
fix: skip null query parameters in Postman to Bruno conversion (#7193)
sanish-bruno Feb 25, 2026
0045b16
perf: Improve search performance in code editor (#6920)
Its-treason Feb 25, 2026
757b635
feat: add options to skip request and response bodies in reporter out…
abhishek-bruno Feb 25, 2026
d3da8a3
fix: default normalizeProxyUrl to http protocol for all proxy URLs (#…
lohit-bruno Feb 25, 2026
f76f487
Performance/file parse and mount (#6975)
chirag-bruno Feb 25, 2026
81a7544
feature: added support for unix sockets and named pipes(windows) for …
chirag-bruno Feb 25, 2026
4d61eca
Fix Environment Search Behavior, UI Updates, and Result Handling (#7287)
Pragadesh-45 Feb 26, 2026
8ce38e8
feat: change default collection location to default location (#7291)
gopu-bruno Feb 26, 2026
234d0df
fix: storing status in example for yml file (#6876)
shubh-bruno Feb 26, 2026
b0d0e4a
Feat: Support `multipart/mixed` (#7155)
Pragadesh-45 Feb 26, 2026
da1d7e5
fix(graphql): handle invalid schemas gracefully in query editor (#7269)
chirag-bruno Feb 26, 2026
fcfb7d4
fix(schema): support all Unicode letters in tag validation (#7311)
numsu Feb 26, 2026
3fdb818
fix#6247: Interpolate dynamic variables in path param (#6251)
NikHillAgar Feb 27, 2026
39d6999
fix: prevent triggering rename action with modifier keys (#7322)
naman-bruno Feb 27, 2026
bf4af42
fix(batch-events): fix order of directory file and folder events (#7300)
sid-bruno Feb 27, 2026
7a65250
fix: tags validation error for openapi import for BRU and YAML compat…
shubh-bruno Feb 27, 2026
27e22bd
Force text/plain mimetype when copying request code (#7321)
austenadler Feb 27, 2026
5dd684f
fix: wrong workspace request shown after closing tab (#7259)
sanjaikumar-bruno Feb 27, 2026
8b23004
Enable encodeUrl setting to control URL encoding in generated snippet…
sanish-bruno Feb 27, 2026
c8e57b7
feat: implement onboarding preferences and welcome modal for new user…
naman-bruno Feb 27, 2026
5e75bc5
Update copyright year to 2026 (#7302)
melroy89 Feb 27, 2026
a9709fb
fix: Postman import compatibility for multipart form-data file params…
chirag-bruno Feb 27, 2026
4f4faec
fix(`oauth2`): prevent false callback matches on `root path URLs` (#7…
lohit-bruno Feb 27, 2026
4797abb
feat: add `tokenType` support for OAuth2 (#7314)
lohit-bruno Feb 27, 2026
910581a
feat: improve stack traces for script and test failures (#7181)
gopu-bruno Mar 2, 2026
834a4fe
fix: resolved zoom ui remarks (#7326)
shubh-bruno Mar 3, 2026
bba0e97
fix: ensure system proxy is initialized before use in network calls (…
lohit-bruno Mar 3, 2026
ca0412b
fix: allow user to delete default bruno headers in pre-request (#7331)
shubh-bruno Mar 3, 2026
4b15b14
feat: add functionality to create new HTTP requests from the welcome …
naman-bruno Mar 3, 2026
e159a44
feat(sidebar): show "Add request" cta when collection or folder is em…
gopu-bruno Mar 3, 2026
e42b015
refactor: streamline onboarding process and preferences handling (#7349)
naman-bruno Mar 3, 2026
14532b4
feat(phase-1): allow user to customize keybindings (#7163)
shubh-bruno Mar 3, 2026
caf073c
fix: file extension for clone and rename request (#7278)
pooja-bruno Mar 3, 2026
574324e
feat: add collection creation flow in SaveTransientRequest modal (#7328)
chirag-bruno Mar 3, 2026
e0dd794
feat: enhance API spec export with environment variables support (#7170)
abhishek-bruno Mar 3, 2026
7218c66
Fix persistence of additional parameters using open-collection format…
xIceFox Mar 4, 2026
6d86c76
feat: inline create collection and workspace editor (#7324)
gopu-bruno Mar 4, 2026
75c3ab8
chore: update coderabbit instructions to make sure the code is os agn…
bijin-bruno Mar 4, 2026
17c3dc0
refactor: comment out unused APIs (#7323)
sanish-bruno Mar 4, 2026
0b7cd0e
Revert "Performance/file parse and mount (#6975)" (#7360)
chirag-bruno Mar 4, 2026
84d8051
fix: show '+ Add request' when only transient items exist (#7361)
gopu-bruno Mar 4, 2026
fb65ede
fix: focus and text selection in workspace creation flow (#7363)
gopu-bruno Mar 4, 2026
5944a9c
feat/openapi sync (#7279)
abhishek-bruno Mar 4, 2026
39f8ce2
feat: enhance OpenAPI Sync tab with sync status indicators and improv…
abhishek-bruno Mar 5, 2026
f5e437a
fix: enable `SSL session caching` and `HTTP agent reuse` for faster c…
lohit-bruno Mar 5, 2026
b2f8b3b
Feat/opeanpi sync updates (#7374)
abhishek-bruno Mar 5, 2026
1748741
refactor: simplify OpenAPISyncTab and related components by removing …
abhishek-bruno Mar 5, 2026
5151d29
chore: UI Polish for Zoom and Keybindings panel (#7376)
shubh-bruno Mar 6, 2026
1b8cee4
fix: use Title Case for default "Untitled Collection" and "Untitled W…
gopu-bruno Mar 6, 2026
af4c4b2
fix: preserve existing process.env values in initializeShellEnv (#7390)
lohit-bruno Mar 6, 2026
553c458
refactor: enhance OpenAPISyncTab functionality and clean up unused co…
abhishek-bruno Mar 6, 2026
12ebfee
fix: update collection path handling to use path.join for consistency…
naman-bruno Mar 6, 2026
707fd40
Fix: resolve default location missing path (#7391)
gopu-bruno Mar 6, 2026
facfe32
fix: allow edit keybinding shortcuts (#7404)
shubh-bruno Mar 9, 2026
f123a2b
fix: app crash error (Rendered fewer hooks than expected) (#7407)
sanish-bruno Mar 9, 2026
4d17809
enhance OpenAPI sync with validation, enum support, and bug fixes (#7…
abhishek-bruno Mar 10, 2026
9bdd439
feat(request-pane): restore body tab scroll position on tab switch (#…
Nizam-Chaudhary Mar 10, 2026
803b3f0
fix: normalize paths when comparing workspace and redux collection pa…
chirag-bruno Mar 11, 2026
ce8775c
fix: multipart header check (#7444)
pooja-bruno Mar 11, 2026
f6ff8ef
refactor: update path imports to use utils/common/path (#7440)
naman-bruno Mar 11, 2026
e7c2c7c
workspace renaming with path update (#7437)
naman-bruno Mar 11, 2026
7c58740
fix: cookie wrapper callback mode returns never-resolving Promise (#7…
lohit-bruno Mar 11, 2026
6f6a910
removed button changed possition to make more acessibility (#7341)
Bobonimo111 Mar 12, 2026
ddb1c69
Revert "workspace renaming with path update (#7437)" (#7455)
naman-bruno Mar 12, 2026
670f11b
revert: feat(phase-1): allow user to customize keybindings#7163 (#7457)
sid-bruno Mar 12, 2026
b25b6f3
refactor: simplify environment list actions and improve styling (#7459)
Pragadesh-45 Mar 12, 2026
c0a2d74
Feat/openapi sync beta tag (#7461)
abhishek-bruno Mar 13, 2026
ab8a730
feat: implement temporary workspace creation and confirmation flow (#…
naman-bruno Mar 13, 2026
a8542c7
Replace SpaceX external API with local graphql-yoga mock server (#7471)
sid-bruno Mar 13, 2026
ab18a6b
feat: integrate deferred loading for saving state in DotEnvFileEditor…
naman-bruno Mar 13, 2026
994d51b
feat: remove .bru reference in error message (#7479)
fantpmas Mar 13, 2026
1e25825
fix(collection-watcher): prevent crash when deleting collections (#7470)
abhishek-bruno Mar 13, 2026
384bf4f
feat: improve OpenAPI Sync tab UX and fix sync flow bugs (#7467)
abhishek-bruno Mar 13, 2026
1ab296f
add missing color to scrollbar-color property (#7481)
bohat-y Mar 13, 2026
83ddfc3
refactor(OpenAPISyncTab): streamline component logic and enhance user…
abhishek-bruno Mar 13, 2026
7e0b8d9
fix: convert non-string variable values to strings during postman imp…
pooja-bruno Mar 16, 2026
c1dff11
refactor: optimize debounced save functionality (#7495)
naman-bruno Mar 16, 2026
7e71776
fix(RequestTabPanel): update loading message for better user feedback…
chirag-bruno Mar 16, 2026
1877119
fix(openapi-sync): simplify IPC calls, fix state priorities, and impr…
abhishek-bruno Mar 16, 2026
68d80b8
feat(bruno-js): add hasCookie function to cookie jar shim for improve…
sanish-bruno Mar 16, 2026
0109d72
refactor: optimize formik value handling and improve save conditions …
naman-bruno Mar 18, 2026
d6429cb
fix: clear draft on save and update dependencies in useEffect (#7512)
naman-bruno Mar 18, 2026
37be721
feat: include pinned data in filtering for more accurate results in e…
Pragadesh-45 Mar 18, 2026
646c908
feat: enhance ScriptError with source context and remove auto-comment…
sanish-bruno Mar 20, 2026
79f9dbf
fix: handle nested parentheses in URL link detection (#7406)
chirag-bruno Mar 23, 2026
32b9f52
fix: quote values containing hash (#) in .env file serialization (#7380)
chirag-bruno Mar 23, 2026
f1d7f00
remove activeEnvironmentUid and migration (#7545)
naman-bruno Mar 23, 2026
123c289
feat(theme): enhance theme management with background color support (…
abhishek-bruno Mar 24, 2026
4461dfd
fix: global search filter by active workspace (#7156)
pooja-bruno Mar 24, 2026
37c0a76
fix: html report collapse for repeated requests (#7153)
pooja-bruno Mar 24, 2026
86b6e2f
feat: add hasCookie hint to autocomplete suggestions for cookie manag…
sanish-bruno Mar 24, 2026
7182cee
fix: enhance error handling and context retrieval for script errors (…
sanish-bruno Mar 24, 2026
367465b
chore(deps): bump dorny/test-reporter from 2 to 3 (#7555)
dependabot[bot] Mar 24, 2026
650ad0f
fix: overlapping help text issue in Environment Variables (#7225)
statxc Mar 24, 2026
590a5a9
fix(import): handle EEXIST when importing OpenAPI collections with pa…
abhishek-bruno Mar 24, 2026
4245944
fix(theme): convert theme bg to hex for Electron backgroundColor (#7569)
abhishek-bruno Mar 25, 2026
304f6c8
feat: support for pkg installer (#7561)
shubh-bruno Mar 25, 2026
73df422
feat: persist window frames and widths (#7409)
shubh-bruno Mar 26, 2026
9944819
chore: add in more react standards (#7577)
sid-bruno Mar 26, 2026
c8d835e
fix: re-apply masking in MultiLineEditor and SingleLineEditor after s…
abhishek-bruno Mar 26, 2026
03dcb6b
feat: implement item sorting for Postman export (#7581)
abhishek-bruno Mar 26, 2026
ff975c4
fix: cross-collection drag and drop tab and format issues (#7584)
chirag-bruno Mar 26, 2026
f69afd7
fix: add the meta block to the object returned by transformFolderRoot…
fantpmas Mar 26, 2026
35cd725
feat: graphql query builder (#7468)
pooja-bruno Mar 27, 2026
9cea604
fix: prompt variable in URL path incorrectly parsed as query paramete…
pooja-bruno Mar 27, 2026
53b75d0
fix: multipart form upload icon visibility (#7571)
pooja-bruno Mar 27, 2026
bbf3cb8
fix: preserve user-defined boundary in multipart/mixed Content-Type h…
chirag-bruno Mar 27, 2026
708e882
style: update CodeMirror bracket highlighting in StyledWrapper compon…
abhishek-bruno Mar 27, 2026
784e851
refactor: update Bru constructor to accept a single options obj for i…
sanish-bruno Mar 27, 2026
95de14a
feat: add `OAuth 1.0` authentication support (#7482)
lohit-bruno Mar 27, 2026
f5a9a48
fix(security): santize HTML before being rendered in documentation bl…
sid-bruno Mar 27, 2026
c2de480
feat: revamp Runner UI with Timings and Filters sections (#7505)
gopu-bruno Mar 27, 2026
bef4b6b
feat(cookies): add direct cookie access methods and update translatio…
sanish-bruno Mar 27, 2026
d2f6eb1
fix: make documentation, folder docs and collection docs edit button …
SahilShameerDev Mar 27, 2026
7ef3981
fix: resolve theme, overflow, and z-index bugs in Remove Collection m…
chirag-bruno Mar 27, 2026
13e97f0
fix: preserve global environment color during script execution (#7427)
chirag-bruno Mar 27, 2026
f1b84e0
fix: update regex for path parameter parsing to handle alphanumeric a…
abhishek-bruno Mar 27, 2026
d07c323
prevent Enter key from submitting form during autocomplete selection …
iyush05 Mar 27, 2026
2977fc7
fix: coerce Postman header values to string during import (#7564)
abhishek-bruno Mar 27, 2026
f491e90
refactor: update file name display in MultipartFormParams and Respons…
abhishek-bruno Mar 27, 2026
c01942a
fix: status & statusText swap (#7589)
shubh-bruno Mar 28, 2026
53aa9ed
fix(dependencies): update fast-xml-parser to 5.5.7 and simple-git to …
sid-bruno Mar 30, 2026
882b11c
fix: multipart form button alignment (#7629)
pooja-bruno Mar 31, 2026
f0866be
feat: keybindings customisation (#7603)
shubh-bruno Mar 31, 2026
3ea4898
chore: pin axios version (#7632)
sid-bruno Mar 31, 2026
4f5c738
fix: folder docs edit button style (#7630)
pooja-bruno Mar 31, 2026
3b38b14
fix: update keybinding actions and tests for reopening closed tabs (#…
sid-bruno Mar 31, 2026
4a78f63
fix: 'axios' module not found locally (#7638)
sid-bruno Mar 31, 2026
8338f91
fix: app crash on clicking close button (#7637)
chirag-bruno Apr 1, 2026
ce105ae
fix: refine dotenv serialization for special characters handling (#7592)
chirag-bruno Apr 1, 2026
bcc1b53
fix: prevent rerun flicker and fix runner configuration list order (#…
gopu-bruno Apr 1, 2026
aa7b8f4
fix: autosave playwright test (#7641)
pooja-bruno Apr 1, 2026
652f3cc
feat: basic annotation syntax support for lang (#7609)
sid-bruno Apr 1, 2026
28d1ba2
improve: graphql query builder test (#7618)
pooja-bruno Apr 1, 2026
9e89255
security: fix all critical vuln dependency reports (#7645)
sid-bruno Apr 1, 2026
40298b9
fix: preserve query params without values by not appending = sign (#…
pooja-bruno Apr 1, 2026
87ca5a8
chore: add a promise based wait group for the shell variables (#7647)
sid-bruno Apr 1, 2026
c502f95
feat: add helper to ensure string conversion for non-string values in…
sanish-bruno Apr 1, 2026
0b3f510
fix: recreate HTTP/HTTPS agents on redirect to prevent stale agent re…
lohit-bruno Apr 1, 2026
8c9cad6
fix: cURL paste not updating request tab editors visually (#7610)
chirag-bruno Apr 1, 2026
3c3acf3
fix: ensure tags are always an array in parseBruRequest function (#7616)
abhishek-bruno Apr 1, 2026
00bc93d
fix: ensure tags are always an array in bruToJson function (#7631)
abhishek-bruno Apr 1, 2026
8e978ae
Add support for importing Swagger 2.0 specifications into Bruno colle…
gopu-bruno Apr 1, 2026
c8abb5b
fix: forward cookies from 4XX/5XX responses in runner and CLI (#7498)
abhishek-bruno Apr 1, 2026
97467c5
feat: add blur event handling to MultiLineEditor and SingleLineEditor…
abhishek-bruno Apr 1, 2026
64bdef2
fix: include examples when writing collection items in CLI OpenAPI im…
abhishek-bruno Apr 1, 2026
d73e019
feat(request-tabs): prevent browser autoscroll on middle-button mouse…
abhishek-bruno Apr 1, 2026
0a9988f
feat: add gRPC proxy support (#7575)
lohit-bruno Apr 1, 2026
c7ebe25
Fix: ensure string authvalues, string header processing (#7646)
sanish-bruno Apr 1, 2026
ce87289
fix: update system proxy fetching to use finally (#7652)
sid-bruno Apr 1, 2026
7ddd2d3
fix: allow file selection in multipart form without entering a key fi…
pooja-bruno Apr 2, 2026
765c9f1
fix: add size and duration fields to CLI bru.runRequest() response (#…
chirag-bruno Apr 2, 2026
5cd3e7a
fix: handle copy/paste item for requests & js file (#7656)
shubh-bruno Apr 2, 2026
bae5934
perf: optimize DNS resolution to reduce request latency (#7664)
lohit-bruno Apr 2, 2026
5c1dc11
fix: isJson assertion should accept arrays as valid JSON (#7620)
abhishek-bruno Apr 2, 2026
9465de0
fix: support response query filtering in safe mode (#7441)
abhishek-bruno Apr 2, 2026
5e1a36f
fix: close previous SSE connection before sending new request (#7474)
chirag-bruno Apr 2, 2026
f112c4f
fix: sample collection creation race condition (#7665)
bijin-bruno Apr 3, 2026
5086ac4
fix: graphql doc close button (#7667)
pooja-bruno Apr 3, 2026
233013d
fix: clear inherited DNS lookup for non-localhost URLs in redirect ha…
chirag-bruno Apr 3, 2026
5db34df
fix: allow __Host- prefixed cookies to be stored via script API (#7549)
abhishek-bruno Apr 3, 2026
073b1ef
fix: validate environment variables in unsaved changes dialog (#7403)
chirag-bruno Apr 3, 2026
c273c10
fix: add uuid v7 support in pre-request scripts (#7377)
chirag-bruno Apr 3, 2026
fabba4d
fix: resolve process.env variables in global environment level (#7600)
abhishek-bruno Apr 4, 2026
4d6032b
fix: timeline url race condition (#7154)
pooja-bruno Apr 6, 2026
476d30a
feat: replace send button with Send/Cancel buttons on request url (#…
gopu-bruno Apr 7, 2026
58942b3
Feat: Support PAC file upload (#7651)
Pragadesh-45 Apr 7, 2026
d4cd34f
fix: fix scroll in querybar component (#7700)
naman-bruno Apr 7, 2026
3b502fd
give sid-bruno some nice privileges (#7702)
sid-bruno Apr 8, 2026
cd06f28
fix: rename signatureEncoding to signatureMethod for OAuth1 in openco…
lohit-bruno Apr 9, 2026
ce3f9a4
fix: no environment alignment (#7580)
pooja-bruno Apr 14, 2026
c5529a9
fix: response filter in runner (#7747)
shubh-bruno Apr 14, 2026
ebf60e0
fix: avoid round trip loss of annotation data (#7730)
sid-bruno Apr 14, 2026
b733d0e
fix: generate examples for description only responses in swagger 2.0 …
gopu-bruno Apr 14, 2026
9822cee
fix: qol fixes for keybindings (#7709)
shubh-bruno Apr 15, 2026
c6281d3
fix: layout glitches on multiline environment variables when scrollin…
shubh-bruno Apr 16, 2026
e3e0b68
fix: shortcut for query builder (#7805)
shubh-bruno Apr 21, 2026
9e92e6f
fix: shortcut in query builder (#7812)
shubh-bruno Apr 21, 2026
c4dc0bc
feat: add JSON Schema validation support with custom chai assertion (…
sanish-bruno Apr 21, 2026
e12b736
feat: add custom jsonBody Chai assertion + simplify Postman translati…
sanish-bruno Apr 22, 2026
9501a14
Fix: Variables Text Missing Whitespace (#7844)
TheUnCola Apr 23, 2026
1f5f726
refactor(table): virtualise tables for perf for EditableTable compone…
pooja-bruno Apr 24, 2026
a7744ee
update readme file with image (#7721)
ganesh-bruno Apr 24, 2026
c91e5fd
fixed noproxy flag (#7586)
ganesh-bruno Apr 24, 2026
9361393
fix/search bar in codeeditor (#7841)
shubh-bruno Apr 27, 2026
87aefe9
fix: send-request shortcut (#7853)
shubh-bruno Apr 27, 2026
ac2cff9
fix: make "Remove Collection" consistent with "Remove Workspace" (#7750)
prateek-bruno Apr 28, 2026
a04d434
feat: add new parameter "apiKeyHeaderName" for "apikey" mode (#7762)
prateek-bruno Apr 28, 2026
431ea02
feat: new selected list component for importing from git (#7813)
prateek-bruno Apr 28, 2026
7febeba
Merge pull request #7871 from ryanjbonnell/ryanjbonnell-patch-1
ryanjbonnell Apr 28, 2026
a305b41
feat: ws multi message (#7719)
pooja-bruno Apr 28, 2026
a688eff
fix: use stable index in requests tab in report (#7867)
prateek-bruno Apr 28, 2026
ff6ec4a
fix: "URL encoding off" ignored for multi-param URLs in generated cod…
prateek-bruno Apr 28, 2026
13a9f9b
Fix 1086: Even after clearing the response, the test count keeps on d…
sharan-bruno Apr 29, 2026
0adf7cd
feat: persist scroll across tabs (#7695)
shubh-bruno Apr 29, 2026
4d6e342
fix: prevent assertions from returning wrong values during large iter…
gopu-bruno Apr 30, 2026
8269d51
collapsible request/response split in request tab (#7566)
gopu-bruno Apr 30, 2026
118ba80
fix: collection settings access, UI overflow fixes, and auto-focus UR…
chirag-bruno Apr 30, 2026
47a1186
feat: integrate Git remote for collections (#7879)
naman-bruno May 4, 2026
5ced51d
feat: persist CodeEditor's json state across tab switching (#7797)
shubh-bruno May 4, 2026
d332d8e
feat: add ajv-formats support to jsonSchema assertion (#7897)
sanish-bruno May 5, 2026
ab7dd1f
feat: auto-require Postman sandbox globals during import (#7878)
gopu-bruno May 5, 2026
b91f9ba
fix: preserve axios default Accept header when setting User-Agent (#7…
j4ln May 5, 2026
15cbdb7
fix: enable DPI-aware NSIS installer (#7803)
davidkaya May 5, 2026
14b2fe1
Centralize OpenAPI sync state in Redux (#7876)
abhishek-bruno May 5, 2026
69417ad
feat(openapi-sync): virtualize spec diff rendering + spec change bloc…
abhishek-bruno May 5, 2026
04732fa
feat(api-spec): drag-to-resize split pane with persisted width (#7866)
abhishek-bruno May 5, 2026
eb06a3f
feat: add PropertyList API for req.headers and res.headers (#7673)
sanish-bruno May 5, 2026
ba42c22
fix: response pane overflow on vertical split drag for grpc/ws reques…
gopu-bruno May 5, 2026
5cf807b
feat: implement proxy-aware API fetching using axios instance (#7767)
Pragadesh-45 May 6, 2026
e92131f
fix(cli): skip headers with empty name when building request (#7869)
Pragadesh-45 May 6, 2026
973ca18
Revert "feat: ws multi message (#7719)" (#7921)
sid-bruno May 6, 2026
0ed2fc8
fix: remove dragbar z-index that was bleeding through modals (#7924)
gopu-bruno May 6, 2026
20f4e42
feat: ui state snapshots (#7794)
sid-bruno May 6, 2026
ece742c
fix: scrollbar restoration (#7926)
shubh-bruno May 6, 2026
39f8c68
fix: message in ConnectGitRemote and RemoveGitRemote (#7929)
naman-bruno May 6, 2026
50d3862
fix: allow empty header names in CLI and gRPC request preparation (#7…
Pragadesh-45 May 6, 2026
d39d5ef
refactor: remove idx from HeaderList, extend ReadOnlyPropertyList, ad…
sanish-bruno May 6, 2026
f8bf146
refactor: revert HeaderList method names to PropertyList conventions …
sanish-bruno May 6, 2026
415b75d
feat: snapshot issues with global tabs (#7942)
sid-bruno May 7, 2026
2c27e01
fix: persist codeeditor state json/undo/redo (#7946)
shubh-bruno May 7, 2026
8552b47
feat: request restore (#7948)
sid-bruno May 7, 2026
327861b
fix: persist scroll for assertions (#7947)
shubh-bruno May 7, 2026
0c7bce3
fix: Update SaveTransientRequestModal empty state when collections do…
chirag-bruno May 8, 2026
4ad5118
fix(bruno-electron): interpolate auth headers for GraphQL introspecti…
phoval May 11, 2026
d8fb7c7
ai: coding standards for e2e tests (#7973)
sid-bruno May 11, 2026
91c7d76
chore: merge upstream usebruno/bruno main
AustralianRaven May 13, 2026
b87bb01
fixing issues
AustralianRaven May 13, 2026
dca1162
fixed issue with no way of seeing auth tokens
AustralianRaven May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,19 @@ reviews:
drafts: false
base_branches: ['main', 'release/*']
path_instructions:
- path: '**/*'
instructions: |
Bruno is a cross-platform Electron desktop app that runs on macOS, Windows, and Linux. Ensure that all code is OS-agnostic:
- File paths must use `path.join()` or `path.resolve()` instead of hardcoded `/` or `\\` separators
- Never assume case-sensitive or case-insensitive filesystems
- Use `os.homedir()`, `app.getPath()`, or environment-appropriate APIs instead of hardcoded paths like `/home/`, `C:\\Users\\`, or `~/`
- Line endings should be handled consistently (be aware of CRLF vs LF issues)
- Use `path.sep` or `path.posix`/`path.win32` when platform-specific separators are needed
- Shell commands or child_process calls must account for platform differences (e.g., `which` vs `where`, `/bin/sh` vs `cmd.exe`)
- File permissions (e.g., `fs.chmod`, `fs.access`) should account for Windows not supporting Unix-style permission bits
- Avoid relying on Unix-only signals (e.g., `SIGKILL`) without Windows fallbacks
- Use `os.tmpdir()` instead of hardcoding `/tmp`
- Environment variable access should handle platform differences (e.g., `HOME` vs `USERPROFILE`)
- path: 'tests/**/**.*'
instructions: |
Review the following e2e test code written using the Playwright test library. Ensure that:
Expand Down
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @helloanoop @maintainer-bruno @bijin-bruno @lohit-bruno @naman-bruno
* @helloanoop @maintainer-bruno @bijin-bruno @lohit-bruno @naman-bruno @sid-bruno
19 changes: 19 additions & 0 deletions .github/actions/auth/oauth1/linux/run-auth-e2e-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: 'Run Auth E2E Tests - Linux'
description: 'Run Auth E2E tests on Linux'
runs:
using: 'composite'
steps:
- name: Run Auth E2E tests
shell: bash
run: |
set -euo pipefail

xvfb-run npm run test:e2e:auth

- name: Upload Playwright Report
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: playwright-report-auth-linux
path: playwright-report/
retention-days: 30
30 changes: 30 additions & 0 deletions .github/actions/auth/oauth1/linux/run-oauth1-cli-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: 'Run OAuth1 CLI Tests - Linux'
description: 'Run OAuth1 CLI tests on Linux'
runs:
using: 'composite'
steps:
- name: Run BRU format CLI tests
shell: bash
run: |
set -euo pipefail

BRU_CLI="../../../../../../packages/bruno-cli/bin/bru.js"

# navigate to BRU test collection directory
cd tests/auth/oauth1/fixtures/collections/bru

echo "=== BRU Format Collection Run ==="
node $BRU_CLI run --env Local --output junit-bru.xml --format junit

- name: Run YML format CLI tests
shell: bash
run: |
set -euo pipefail

BRU_CLI="../../../../../../packages/bruno-cli/bin/bru.js"

# navigate to YML test collection directory
cd tests/auth/oauth1/fixtures/collections/yml

echo "=== YML Format Collection Run ==="
node $BRU_CLI run --env Local --output junit-yml.xml --format junit
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: 'Setup Auth Feature Dependencies - Linux'
description: 'Setup feature-specific dependencies for auth tests on Linux'
runs:
using: 'composite'
steps:
- name: Install additional OS dependencies for auth tests
shell: bash
run: |
sudo apt-get update
sudo apt-get --no-install-recommends install -y \
libglib2.0-0 libnss3 libdbus-1-3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libgtk-3-0 libasound2t64 \
xvfb

sudo chown root /home/runner/work/bruno/bruno/node_modules/electron/dist/chrome-sandbox
sudo chmod 4755 /home/runner/work/bruno/bruno/node_modules/electron/dist/chrome-sandbox
16 changes: 16 additions & 0 deletions .github/actions/auth/oauth1/linux/start-test-server/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: 'Start Test Server - Linux'
description: 'Start the bruno-tests mock server for OAuth1 CLI tests on Linux'
runs:
using: 'composite'
steps:
- name: Start test server
shell: bash
run: |
set -euo pipefail

cd packages/bruno-tests

echo "starting test server in background"
node src/index.js &

echo "server started with PID: $!"
17 changes: 17 additions & 0 deletions .github/actions/auth/oauth1/macos/run-auth-e2e-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: 'Run Auth E2E Tests - macOS'
description: 'Run Auth E2E tests on macOS'
runs:
using: 'composite'
steps:
- name: Run Auth E2E tests
shell: bash
run: |
npm run test:e2e:auth

- name: Upload Playwright Report
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: playwright-report-auth-macos
path: playwright-report/
retention-days: 30
30 changes: 30 additions & 0 deletions .github/actions/auth/oauth1/macos/run-oauth1-cli-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: 'Run OAuth1 CLI Tests - macOS'
description: 'Run OAuth1 CLI tests on macOS'
runs:
using: 'composite'
steps:
- name: Run BRU format CLI tests
shell: bash
run: |
set -euo pipefail

BRU_CLI="../../../../../../packages/bruno-cli/bin/bru.js"

# navigate to BRU test collection directory
cd tests/auth/oauth1/fixtures/collections/bru

echo "=== BRU Format Collection Run ==="
node $BRU_CLI run --env Local --output junit-bru.xml --format junit

- name: Run YML format CLI tests
shell: bash
run: |
set -euo pipefail

BRU_CLI="../../../../../../packages/bruno-cli/bin/bru.js"

# navigate to YML test collection directory
cd tests/auth/oauth1/fixtures/collections/yml

echo "=== YML Format Collection Run ==="
node $BRU_CLI run --env Local --output junit-yml.xml --format junit
16 changes: 16 additions & 0 deletions .github/actions/auth/oauth1/macos/start-test-server/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: 'Start Test Server - macOS'
description: 'Start the bruno-tests mock server for OAuth1 CLI tests on macOS'
runs:
using: 'composite'
steps:
- name: Start test server
shell: bash
run: |
set -euo pipefail

cd packages/bruno-tests

echo "starting test server in background"
node src/index.js &

echo "server started with PID: $!"
17 changes: 17 additions & 0 deletions .github/actions/auth/oauth1/windows/run-auth-e2e-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: 'Run Auth E2E Tests - Windows'
description: 'Run Auth E2E tests on Windows'
runs:
using: 'composite'
steps:
- name: Run Auth E2E tests
shell: pwsh
run: |
npm run test:e2e:auth

- name: Upload Playwright Report
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: playwright-report-auth-windows
path: playwright-report/
retention-days: 30
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: 'Run OAuth1 CLI Tests - Windows'
description: 'Run OAuth1 CLI tests on Windows'
runs:
using: 'composite'
steps:
- name: Run BRU format CLI tests
shell: pwsh
run: |
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"

$BRU_CLI = "..\..\..\..\..\..\packages\bruno-cli\bin\bru.js"

# navigate to BRU test collection directory
Set-Location tests\auth\oauth1\fixtures\collections\bru

Write-Host "=== BRU Format Collection Run ==="
$process = Start-Process -FilePath "node" -ArgumentList "$BRU_CLI run --env Local --output junit-bru.xml --format junit" -NoNewWindow -Wait -PassThru -RedirectStandardError "nul"
if ($process.ExitCode -ne 0) { exit 1 }

- name: Run YML format CLI tests
shell: pwsh
run: |
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"

$BRU_CLI = "..\..\..\..\..\..\packages\bruno-cli\bin\bru.js"

# navigate to YML test collection directory
Set-Location tests\auth\oauth1\fixtures\collections\yml

Write-Host "=== YML Format Collection Run ==="
$process = Start-Process -FilePath "node" -ArgumentList "$BRU_CLI run --env Local --output junit-yml.xml --format junit" -NoNewWindow -Wait -PassThru -RedirectStandardError "nul"
if ($process.ExitCode -ne 0) { exit 1 }
14 changes: 14 additions & 0 deletions .github/actions/auth/oauth1/windows/start-test-server/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: 'Start Test Server - Windows'
description: 'Start the bruno-tests mock server for OAuth1 CLI tests on Windows'
runs:
using: 'composite'
steps:
- name: Start test server
shell: pwsh
run: |
Set-StrictMode -Version Latest

Set-Location packages\bruno-tests

Write-Host "starting test server in background"
Start-Process -FilePath "node" -ArgumentList "src\index.js" -PassThru -WindowStyle Hidden
10 changes: 8 additions & 2 deletions .github/actions/common/setup-node-deps/action.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
name: 'Setup Node Dependencies'
description: 'Install Node.js and npm dependencies'
inputs:
skip-build:
description: 'Skip building libraries'
required: false
default: 'false'
runs:
using: 'composite'
steps:
Expand All @@ -9,12 +14,13 @@ runs:
node-version: v22.17.0
cache: 'npm'
cache-dependency-path: './package-lock.json'

- name: Install node dependencies
shell: bash
run: npm ci --legacy-peer-deps

- name: Build libraries
if: inputs.skip-build != 'true'
shell: bash
run: |
npm run build:graphql-docs
Expand Down
20 changes: 20 additions & 0 deletions .github/actions/tests/run-cli-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: 'Run CLI Tests'
description: 'Setup dependencies, start local testbench and run CLI tests'
runs:
using: 'composite'
steps:
- name: Run Local Testbench
shell: bash
run: |
npm start --workspace=packages/bruno-tests &
sleep 5

- name: Install Test Collection Dependencies
shell: bash
run: npm ci --prefix packages/bruno-tests/collection

- name: Run CLI Tests
shell: bash
run: |
cd packages/bruno-tests/collection
node ../../bruno-cli/bin/bru.js run --env Prod --output junit.xml --format junit --sandbox developer
22 changes: 22 additions & 0 deletions .github/actions/tests/run-e2e-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: 'Run E2E Tests'
description: 'Setup dependencies, configure environment, and run Playwright E2E tests'
inputs:
os:
description: 'Operating system (ubuntu, macos, windows)'
default: 'ubuntu'
runs:
using: 'composite'
steps:
- name: Install Test Collection Dependencies
shell: bash
run: npm ci --prefix packages/bruno-tests/collection

- name: Run Playwright Tests (Ubuntu)
if: inputs.os == 'ubuntu'
shell: bash
run: xvfb-run npm run test:e2e

- name: Run Playwright Tests
if: inputs.os != 'ubuntu'
shell: bash
run: npm run test:e2e
48 changes: 48 additions & 0 deletions .github/actions/tests/run-unit-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: 'Run Unit Tests'
description: 'Setup dependencies and run unit tests for all packages'
runs:
using: 'composite'
steps:
- name: Test Package bruno-js
shell: bash
run: npm run test --workspace=packages/bruno-js

- name: Test Package bruno-cli
shell: bash
run: npm run test --workspace=packages/bruno-cli

- name: Test Package bruno-query
shell: bash
run: npm run test --workspace=packages/bruno-query

- name: Test Package bruno-lang
shell: bash
run: npm run test --workspace=packages/bruno-lang

- name: Test Package bruno-schema
shell: bash
run: npm run test --workspace=packages/bruno-schema

- name: Test Package bruno-app
shell: bash
run: npm run test --workspace=packages/bruno-app

- name: Test Package bruno-common
shell: bash
run: npm run test --workspace=packages/bruno-common

- name: Test Package bruno-converters
shell: bash
run: npm run test --workspace=packages/bruno-converters

- name: Test Package bruno-electron
shell: bash
run: npm run test --workspace=packages/bruno-electron

- name: Test Package bruno-requests
shell: bash
run: npm run test --workspace=packages/bruno-requests

- name: Test Package bruno-filestore
shell: bash
run: npm run test --workspace=packages/bruno-filestore
Loading
Loading