Log message:
net/slumber: update to 3.0.0
[3.0.0] - 2025-02-15
A major release! The main focus of this release is the introduction of shell \
commands for data querying and export. Previously, you could query response \
bodies within the TUI only using JSONPath. This limited querying only to JSON \
responses, and the limited amount of operators supported by JSON. Now, you can \
use whatever shell commands you want (such as head, grep, and jq) to filter your \
reponses bodies, right in the TUI! Check out the docs for more examples.
In addition to the querying change, this release includes a handful of breaking \
changes, none of which are likely to cause issues for existing users.
Breaking
Don't store CLI requests in history
Simplify display for slumber request
The flags --status, --headers and --no-body have been removed in favor \
of a single --verbose flag
Remove DB migration to upgrade from the pre-1.8.0 DB format
This only impacts users upgrading to 3.0.0 from versions before 1.8.0. \
You'll need to upgrade to an intermediate version first. If you install 3.0.0 \
and try to start it, you'll see an error message explaining how to fix it.
See #306 for more info
Added
Replace JSONPath querying with general purpose shell commands for querying \
response bodies. See docs
Now you can access any CLI tools you want for transforming response \
bodies, such as jq or grep
By default, commands are executed via sh (or cmd on Windows), but this \
is configured via the commands.shell field
Add keybind (: by default) to run an "export" command with a \
response body, allowing you to run arbitrary shell commands to save a response \
body to a file, copy it to the clipboard, etc. See docs
Add slumber history subcommand. Currently it has two operations:
slumber history list lists all stored requests for a recipe
slumber history get prints a specific request/response
Add --output flag to slumber request to control where the response body is \
written to
Support MIME type mapping for pager config field, so you can set different \
pagers based on media type. See docs
Several changes related to keybinds and action menus to make the two feel \
more cohesive
Add "Edit" and "Reset" actions to menus on the \
recipe pane
These don't provide any new functionality, as the e and z keys are \
already bound to those actions, but it should make them more discoverable
Add keybind (v by defualt) to open a recipe/request/response body in \
your pager
Previously this was available only through the actions menu
"View Body" and "Copy Body" actions for a recipe are \
now only available within the Body tab of the Recipe pane
Previously they were available anywhere in the Recipe List or Recipe \
panes. With the addition of other actions to the menu it was started to feel \
cluttered
Changed
Denote templates that have been edited during the current session with \
italics instead of a faint "(edited)" note
Header names in recipes are now lowercased in the UI
They have always been lowercased when the request is actually sent, so \
now the UI is just more representative of what will be sent
Accept a directory for the --file/-f CLI argument
If a directory is given, the standard rules for detecting a collection \
file will be applied from that directory
Fixed
Fix certain recipe-related menu actions being enabled when they shouldn't be
|
Log message:
net/slumber: update to 2.1.0
## [2.1.0] - 2024-09-27
### Added
- Use `SLUMBER_CONFIG_PATH` to customize configuration (_not_ collection) file \
path [#370](https://github.com/LucasPickering/slumber/issues/370)
- Add a dynamic variant to `!select` chain type, allowing your collection to \
present a list of values driven from the output of another chain. (thanks \
@anussel5559)
- [See docs for \
more](https://slumber.lucaspickering.me/book/api/request_collection/chain_source.html#select)
- Cancel in-flight requests with the `cancel` action (bound to escape by default)
- Add `slumber new` subcommand to generate new collection files \
[#376](https://github.com/LucasPickering/slumber/issues/376)
- Add `default` field to profiles
- When using the CLI, the `--profile` argument can be omitted to use the \
default profile
- Reset edited recipe values to their default using `z`
- You can [customize the \
key](https://slumber.lucaspickering.me/book/api/configuration/input_bindings.html) \
to whatever you want
- Add `selector_mode` field to chains, to control how single vs multiple results \
from a JSONPath selector are handled
- Previously, if a selector returned multiple results, an error was returned. \
Now, the result list will be rendered as a JSON array. To return to the previous \
behavior, set `selector_mode: single` in your chain.
- [See docs for \
more](https://slumber.lucaspickering.me/book/api/request_collection/chain.html#selector-mode)
### Changed
- Update file locations to adhere to XDG spec on Linux \
[#371](https://github.com/LucasPickering/slumber/issues/371)
- Move config file to [config \
dir](https://docs.rs/dirs/latest/dirs/fn.config_dir.html), which remains the \
same on MacOS/Windows but changes on Linux. For backward compatibility, the \
previous path ([data dir](https://docs.rs/dirs/latest/dirs/fn.data_dir.html)) \
will be checked and used if present
- Move log files to [state \
dir](https://docs.rs/dirs/latest/dirs/fn.state_dir.html) on Linux and [cache \
dir](https://docs.rs/dirs/latest/dirs/fn.cache_dir.html) on MacOS/Windows
- Database file remains in [data \
dir](https://docs.rs/dirs/latest/dirs/fn.data_dir.html) on all platforms
- Create config file on startup if it doesn't exist
- If config file fails to load during TUI startup, display an error and fall \
back to the default, rather than crashing
- De-deprecate `{{env.VARIABLE}}` template sources
- They'll remain as a simpler alternative to `!env` chains
### Fixed
- Updated the Configuration docs to remove the non-existent `slumber show dir` \
command (thanks @SVendittelli)
- Retain all request history when collection file is reloaded
- Previously, pending and failed requests were lost on reload within a single \
session. These will still be lost when a session is exited.
- Fix serialization of query parameter lists
- Don't update UI for useless events (e.g. cursor moves)
## [2.0.0] - 2024-09-06
2.0 is headlined by a highly requested feature: one-off edits to recipes! If you \
need to tweak a query parameter or edit a body, but don't want to modify your \
collection file, you can now highlight the value in question and hit `e` to \
modify it. The override will be retained until you modify the collection file or \
exit Slumber, at which point it will revert to its original value.
Aside from the major new feature, there is one breaking change to the escape \
syntax of templates. The old backslash-based syntax was fraught with edge cases \
and unpredictable behavior. This new syntax is simpler to use, simpler to \
implement, and much more bulletproof. This syntax was rare to use to begin with, \
so **most people will be unimpacted by this change.**
Here's the full list of changes:
### Breaking
- Replace backslash escape sequence with a simpler scheme based on `_`
- For example, previously a key would be escaped as `\{{`. This introduced \
complexities around how to handle additional backslashes, and also required \
doubling up backslashes in YAML
- The new equivalent would be `{_{`, which parses as `{{`
- The goal of this change is to make escaping behavior simpler and more consistent
- For more info on the new behavior, [see the \
docs](https://slumber.lucaspickering.me/book/api/request_collection/template.html#escape-sequences)
- Remove `--log` CLI argument
- See note on log files in Changed section for why this is no longer necessary
### Added
- Edit recipe values (query params, headers, etc.) in the TUI to provide one-off \
values
- Press `e` on any value you want to edit (you can [customize the \
key](https://slumber.lucaspickering.me/book/api/configuration/input_bindings.html))
- Add `editor` field to the config, allowing you to customize what editor \
Slumber opens for in-app editing
- [See docs for \
more](https://slumber.lucaspickering.me/book/api/configuration/editor.html)
- Add `!select` chain type, allowing your collection to prompt the user to \
select a value from a static list (thanks @anussel5559)
- [See docs for \
more](https://slumber.lucaspickering.me/book/api/request_collection/chain_source.html#select)
### Changed
- `!json` bodies are now prettified when sent to the server
- Use `vim` as default editor if none is configured
- Move logs back to a shared file
- They had been split into one file per session, which made them hard to find
- The file is now eventually deleted once it exceeds a certain size
### Fixed
- Fix basic auth being label as bearer auth in Recipe Authentication pane
- Use correct binding for `search` action in the placeholder of the response \
filter textbox
- Previously it was hardcoded to display the default of `/`
- Fix response body filter not applying on new responses
- Support quoted arguments in editor commands
- Fix certain UI values not persisting correctly
- Propagate unconsumed key events from text boxes
- E.g. F5 will now refresh the collection while a text box is in focus
- Redraw TUI when terminal is resized
- Clamp text window scroll state when window is resized or text changes
- Fix extraneous input events when exiting Vim \
[#351](https://github.com/LucasPickering/slumber/issues/351)
- Improve performance and fix crashes when handling large request/response \
bodies [#356](https://github.com/LucasPickering/slumber/issues/356)
- Further improvements for large bodies will be coming in the future
## [1.8.1] - 2024-08-11
This release is focused on improving rendering performance. The TUI should \
generally feel more polished and responsive when working with large bodies, and \
CPU usage will be much lower.
### Added
- Add `debug` configuration field, to enable developer information
### Fixed
- Reduce CPU usage while idling
- Previously, Slumber would re-render every 250ms while idling, which could \
lead to high CPU usage, dependending on what's on the screen. Now it will only \
update when changes occur, meaning idle CPU usage will be nearly 0
- Fix backlogged events when renders are slow
- If renders are being particular slow, it was previously possible for input \
events (e.g. repeated scrolling events) to occur faster than the UI could keep \
up. This would lead to "lock out" behavior, where you'd stop scrolling \
and it'd take a while for the UI to catch up.
- Now, the TUI will skip draws as necessary to keep up with the input queue. \
In practice the skipping should be hard to notice as it only occurs during rapid \
TUI movements anyway.
- Improve rendering performance for large bodies and syntax highlighting
- Fix incorrect decoration in folder tree visualization
## [1.8.0] - 2024-08-09
The highlight (no pun intended) of this release is syntax highlighting. Beyond \
that, the release contains a variety of small fixes and improvements.
### Added
- Add syntax highlighting to recipe, request, and response display \
[#264](https://github.com/LucasPickering/slumber/issues/264)
### Changed
- Change layout of internal database for request and UI state storage
- This _shouldn't_ have any user impact, it's just a technical improvement. If \
you notice any issues such as missing or incorrect request history, please [let \
me \
know](https://github.com/LucasPickering/slumber/issues/new?assignees=&labels=bug&projects=&template=bug_report.md)
- Upgrade to Rust 1.80
- Disable unavailable menu actions \
[#222](https://github.com/LucasPickering/slumber/issues/222)
- Support template for header names in the `section` field of `!request` chains
- Expand `~` to the home directory in `!file` chain sources and when saving \
response body as a file
- Ignore key events with additional key modifiers
- For example, an action bound to `w` will no longer match `ctrl w`
- Actions can now be unbound by specifying an empty binding
- For example, binding `submit: []` will make the submit action inaccessible
### Fixed
- Fix `cargo install slumber` when not using `--locked`
- Don't type in text boxes when modifiers keys (other than shift) are enabled
- Should mitigate some potential confusing behavior when using terminal key \
sequences
- Query parameter and header toggle rows no longer lose their state when \
switching profiles
|