Skip to content

Latest commit

 

History

History
441 lines (295 loc) · 17.2 KB

CHANGELOG.md

File metadata and controls

441 lines (295 loc) · 17.2 KB

Changelog

All user-facing changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased] - ReleaseDate

Added

  • Structured bodies can now be defined with tags on the body field of a recipe, making it more convenient to construct bodies of common types. Supported types are:
  • Support multiple instances of the same query param #245 (@maksimowiczm)
    • Query params can now be defined as a list of <param>=<value> entries
    • See docs
  • Templates can now render binary values in certain contexts

Changed

  • When a modal/dialog is open q now exits the dialog instead of the entire app
  • Upgrade to Rust 1.76

[1.3.2] - 2024-05-27

Changed

  • Show "Copy URL", "Copy Body" and "Copy as cURL" actions from the Recipe list #224
    • Previously this was only available in the Recipe detail pane
  • Fix Edit Collection action in menu
  • Persist response body query text box contents
    • Previously it would reset whenever you made a new request or changed recipes

[1.3.1] - 2024-05-21

Fixed

  • Fix double key events on Windows #226

[1.3.0] - 2024-05-17

The biggest feature in this release is the ability to browse request history. Slumber has already had the ability to track history, meaning all your history since you started using it will already be there! In addition, this release contains some UI improvements, as well as some pretty major internal refactors to enable these UI changes. These will also make future UI improvements easier and faster to implement.

Added

  • Request history is now browsable! #55
  • Add scrollbars to lists and text windows #220

Changed

  • Merge request & response panes
    • The request pane often isn't needed, so it doesn't deserve top-level space
  • Mouse events (e.g. scrolling) are now sent to unfocused elements

[1.2.1] - 2024-05-11

Fixed

  • Fix profile not being selected on initial startup

[1.2.0] - 2024-05-10

Added

  • Add trim option to chains, to trim leading/trailing whitespace #153

Changed

  • Use colored background for status codes
    • This includes a new theme field, success_color
  • Improve hierarchy presentation of errors
  • Convert profile list into a popup modal

Fixed

  • Exit fullscreen mode when changing panes
  • Support scrolling on more lists/tables

[1.1.0] - 2024-05-05

Added

  • Add section field to !request chain values, to allow chaining response headers rather than body (#184)
  • Add action to save response body to file (#183)
  • Add theme field to the config, to configure colors (#193)
  • Add stdin option to command chains (#190)

Changed

  • Reduce UI latency under certain scenarios
    • Previously some actions would feel laggy because of an inherent 250ms delay in processing some events
  • Search parent directories for collection file (#194)
  • Use thicker borders for selected pane and modals
  • Change default TUI colors to blue and yellow

Fixed

  • Fix Slumber going into zombie mode and CPU spiking to 100% under certain closure scenarios (#136)
  • Fix historical request/response no loading on first render (#199)

[1.0.1] - 2024-04-27

Added

  • Add two new build targets to releases: x86_64-pc-windows-msvc and x86_64-unknown-linux-musl

Fixed

  • Fix build on Windows (#180)
    • I can't guarantee it works on Windows since I don't have a machine to test on, but it at least compiles now

[1.0.0] - 2024-04-25

Breaking

  • Rename collection file parameter on all CLI commands from --collection/-c to --file/-f
    • The goal here is to be more intuitive/predictable, since -f is much more common in similar programs (e.g. docker-compose)

Added

  • Support booleans and numbers for query values (#141)
  • Add default field to !prompt chains, which allows setting a pre-populated value for the prompt textbox

Changed

  • Folders can now be collapsed in the recipe list (#155)
  • Improvements to Insomnia import (#12)
  • Rename import-experimental command to import
    • It's official now! It's still going to get continuted improvement though
  • Show WARN/ERROR log output for CLI commands
  • Validate recipe method field during deserialization instead of on request init
    • This means you'll get an error on startup if your method is invalid, instead of when you go to run the request
    • This is not a breaking change because if you had an incorrect HTTP method, the request still didn't work before, it just broke later
  • Arguments to chains are now treated as templates (#151)
    • Support fields are path for !file chains, command for !command chains, and message for !prompt chains
    • This means you can now really chain chains together!

[0.18.0] - 2024-04-18

Breaking

  • All existing recipes must be tagged with !request in the collection file
    • This is necessary to differentiate from the new !folder type
  • Profile values are always treated as templates now
    • Any profile values that were previously the "raw" variant (the default) that contain template syntax (e.g. {{user_id}}) will now be rendered as templates. In reality this is very unlikely, so this probably isn't going to break your setup
    • If you have an existing profile value tagged with !template it won't break, but it will no longer do anything
  • Unknown fields in config/collection files will now be rejected (#154)
    • In most cases this field is a mistake, so this is meant to make debugging easier
    • If you have an intentional unknown field, you can now nest it under .ignore to ignore it
  • Replace slumber show dir with slumber show paths

Added

  • Request recipes can now be organized into folders (#60)
  • Add slumber show config and slumber show collection subcommands

Changed

  • Prevent infinite recursion in templates
    • It now triggers a helpful error instead of a panic
  • Support additional key codes for input mapping, including media keys

Fixed

  • Multiple spaces between modifiers/key codes in a key combination are now ignored

[0.17.0] - 2024-04-08

Breaking

  • All variants of the Chain.source field are now maps
    • This is to support the next request auto-execution feature, as well as future proofing for additional chain configuration
  • Remove send_request keybinding
    • The submit keybinding is now used to send requests from all panes (except the profile pane)
    • This is only a breaking change if you have send_request remapped in your config file

Follow this mapping to update:

# Before
chains:
  auth_token:
    source: !request login
  username:
    source: !command ["echo", "-n", "hello"]
  username:
    source: !file ./username.txt
  password:
    source: !prompt Enter Password
---
# After
chains:
  auth_token:
    source: !request
      recipe: login
  username:
    source: !command
      command: ["echo", "-n", "hello"]
  username:
    source: !file
      path: ./username.txt
  password:
    source: !prompt
      message: Enter Password

Added

  • Chained requests can now be auto-executed according to various criteria (#140)
  • Add Authentication tab to recipe pane (#144)

Changed

  • Don't print full stack trace for failed CLI commands

[0.16.0] - 2024-04-01

Added

  • Add support for custom keybindings (#137)

Fixed

  • Fix request body not updating in UI when changing recipe

[0.15.0] - 2024-03-24

Added

  • Add horizontal scrolling to response body (#111)
    • Use shift+left and shift+right
  • Add app version to help modal
  • Add "Copy as cURL" action to recipe menu (#123)
  • Add hotkeys to select different panes
  • Add pane for rendered request
  • Show response size in Response pane (#129)

Changed

  • Run prompts while rendering request URL/body to be copied
  • Improve UI design of profile pane
  • Show raw bytes for binary responses

Fixed

  • Reset response body query when changing recipes (#133)

[0.14.0] - 2024-03-18

Added

  • Add config option ignore_certificate_hosts (#109)
  • Add menu action to open collection file in editor (#105)
  • Add authentication field to request recipe (#110)

Fixed

  • Fix prompt in TUI always rendering as sensitive (#108)
  • Fix content type identification for extended JSON MIME types (#103)
  • Use named records in binary blobs in the local DB
    • This required wiping out existing binary blobs, meaning all request history and UI state will be lost on upgrade
  • Fix basic auth in Insomnia import

[0.13.1] - 2024-03-07

Changed

  • Move checkbox to left side of toggle tables

Fixed

  • Fix scrolling on response body pane

[0.13.0] - 2024-02-21

Added

  • New informational flags to slumber request
    • --exit-status to set exit code based on response status (#97)
    • --status, --headers, and --no-body to control printed output
  • Filter response via JSONPath (#78)

[0.12.1] - 2024-01-22

Changed

  • Improved styling of toggled table rows

[0.12.0] - 2024-01-07

Added

  • Move app-level configuration into a file (#89)
    • Right now the only supported field is preview_templates
  • Toggle query parameters and headers in recipe pane (#30)
    • You can easily enable/disable parameters and headers without having to modify the collection file now
  • Add Copy URL action, to get the full URL that a request will generate (#93)

Changed

  • Show profile contents while in the profile list (#26)
  • Remove settings modal in favor of the settings file
    • Supporting changing configuration values during a session adds a lot of complexity

[0.11.0] - 2023-12-20

Added

  • Add action to copy entire request/response body (#74)
  • Persist UI state between sessions (#39)
  • Text window can be controlled with PgUp/PgDown/Home/End (#77)
  • Add back manual reload keybinding (R)
    • Mostly for development purposes
  • Add collection ID/path to help modal (#59)
    • Also add collection ID to terminal title
  • Add new docs for templates and collection reuse (#67)

Changed

  • [BREAKING] Key profiles/chains/requests by ID in collection file
  • [BREAKING] Merge request history into a single DB file
    • Request history (and UI state) will be lost
  • [BREAKING] show subcommand now takes a target argument
    • Right now the only option is slumber show dir, which has the same behavior as the old slumber show (except now it prints the bare directory)
  • [BREAKING] Remove option to toggle cursor capture
    • Turns out it's not that useful, since most terminals provide override behavior
  • Filter request history by profile (#74)
  • Hide sensitive chain values in preview
  • Change fullscreen keybinding from F11 to F
    • F11 in some cases is eaten by the IDE or OS, which is annoying

Fixed

  • Don't require collection file to be present for show subcommand (#62)
  • Fix state file being created in root Slumber directory if collection file is invalid (#71)
  • Fix pane cycling while in fullscreen (#76)

[0.9.0] - 2023-11-28

Added

  • Add setting to toggle cursor capture
  • Add help modal
  • Add cursor navigation

Changed

  • Always show help text in footer, regardless of notification state
  • Add highlight border to fullscreened pane
  • Allow exiting fullscreen mode with ESC

[0.8.0] - 2023-11-21

Added

  • Add slumber show subcommand

Changed

  • Remove keybinding to reload collection
    • Not useful now that the TUI has automatic reloading
  • Move to stable Rust channel and add MSRV of 1.74

Fixed

  • Don't panic if the collection file is invalid on first startup #34
    • The TUI will now show an empty screen, and watch the collection file for changes
  • Fix long status code reasons getting cut off in response header #40
  • Trim leading/trailing newlines from header values to prevent validation error

[0.7.0] - 2023-11-16

Added

  • Added recursive templates for profile values, using the !template tag before a value

Changed

  • Parse templates up front instead of during render
  • Switch to nom for template parsing
    • Parse errors should be better now

[0.6.0] - 2023-11-11

Added

  • Add ability to preview template values. This will show the rendered value under current settings #29
    • This includes a new modal to toggle the setting on/off, via the X key
  • Add command source type for chained values, which uses stdout from an executed subprocess command #31

Changed

  • HTTP method is now a plain string, not a template string. This simplifies some internal logic, and I don't think there was a compelling reason to make a template in the first place.

[0.5.0] - 2023-11-07

Added

  • Add top-level collection id field
    • Needed in order to give each collection its own history file
  • Disable mouse capture to allow text highlighting #17
  • Add keybinding (F2) to send request from any view

Fixed

  • Differentiate history between different collections #10
  • Ensure ctrl-c can't get eaten by text boxes (it guarantees exit now) #18

Changed

  • Adjust size of profile list dynamically based on number of profiles
  • Use structured table display format for query parameters and headers
  • Tweak list and tab styling

[0.4.0] - 2023-11-02

Added

  • Request and response panes can now be fullscreened and scrolled #14

Removed

  • Removed Chain.name field in config

Changed

  • All modals now use a shared queue

Fixed

  • Initially selected recipe loads most recent response #13

[0.3.1] - 2023-10-22

Initial distributed release!