Nushell 0.110.0
Today, we're releasing version 0.110.0 of Nu. This release adds a let pipeline command, an unlet command, improvements to the Polars plugin, improvements to explore, and faster ls on Windows.
Where to get it
Nu 0.110.0 is available as pre-built binaries or from crates.io. If you have Rust installed you can install it using cargo install nu.
As part of this release, we also publish a set of optional plugins you can install and use with Nushell.
Table of contents
- Highlights and themes of this release
- Changes
- Breaking changes
- Additions
- New Configuration Option:
$env.config.show_hints - Configuring errors
- Added record conversion to
into list - Include MCP server support by default
- Connection pool for
httpcommands - New
--outputflag fortimeit - Allow disabling filtering in custom completions
- New plugin interface
get_block_ir - New
--listflag to control list formatting into md - Add
--iconsoption to table forlstables - Alias definitions shown in
whichcommand - Allow serializing as raw strings in
to nuon - Other additions
- New Configuration Option:
- Removals
- Other changes
- Bug fixes
- Fixed parsing of ranges with parentheses
- Fixed parsing issue with multiarm match + guard
- Infinite sequences can be terminated when piped to other commands
- Pipefail works with
tryblock - Nushell exits early when running scripts or commands with bad config files
- Fix
httpDNS resolution "Service not supported" error in Docker containers - Fix variables remaining active after
overlay hide - Other fixes
- Notes for plugin developers
- Hall of fame
- Full changelog
Highlights and themes of this release [toc]
let can be used in pipelines [toc]
With #17247, the let command is now allowed to be at the end of the pipeline when a variable name is also provided.
ls | get name | let files
# Equivalent to the following:
let files = ls | get nameDestroying variables with unlet [toc]
To bring balance to the universe, #17270 introduces a new command unlet for deleting variables from memory.
❯ let a = 1;let b = 2;let c = 3;let d = 4
❯ $"($a)($b)($c)($d)"
1234
❯ unlet $a $b $cM
❯ $"($a)($b)($c)($d)"
Error: nu::shell::variable_not_found
× Variable not found
╭─[entry #21:1:4]
1 │ $"($a)($b)($c)($d)"
· ─┬
· ╰── variable not found
╰────Accompanying this is a new mem_size column in the output of the scope variables command for showing the size of each variable in memory (implemented in #17287).
Polars plugin supports selectors [toc]
#17296 introduces Polars selector support. This introduces the NuSelector type and adds following new commands.
polars selector all(plugin) - Creates a selector that selects all columns.polars selector by-dtype(plugin) - Creates a selector that selects columns by data type.polars selector by-name(plugin) - Creates a selector that selects columns by name.polars selector first(plugin) - Creates a selector that selects the first column(s) by index.polars selector last(plugin) - Creates a selector that selects the last column(s) by index.
Selectors may be used with polars select and polars with-column.
Polars plugin supports more cloud providers [toc]
Azure support [toc]
#17116 brings Azure blob storage support to the Polars plugin. The following environment variables are now supported:
AZURE_STORAGE_ACCOUNT_NAME: storage account nameAZURE_STORAGE_ACCOUNT_KEY: storage account master keyAZURE_STORAGE_ACCESS_KEY: alias forAZURE_STORAGE_ACCOUNT_KEYAZURE_STORAGE_CLIENT_ID: client id for service principal authorizationAZURE_STORAGE_CLIENT_SECRET: client secret for service principal authorizationAZURE_STORAGE_TENANT_ID: tenant id used in oauth flows
Example Usage:
$env.AZURE_STORAGE_ACCOUNT_KEY = "<your access key value>"
$env.AZURE_STORAGE_ACCOUNT_NAME = "<your account name>"
ps | polars into-df | polars save azure://<your account name>/ps.parquet
polars open azure://<your account name>/ps.parquet | polars first 5 | polars collectGoogle Cloud support [toc]
#17135 brings Google Cloud Storage support to the Polars plugin.
$env.GOOGLE_SERVICE_ACCOUNT = "/path/to/service_account.json"
$env.GOOGLE_BUCKET = "your_bucket"
ps | polars into-df | polars save gs://nushell_testing/ps.parquet
polars open gs://nushell_testing/ps.parquet | polars first 5 | polars collectexplore regex [toc]
#17187 adds a quick reference panel to explore regex so you won't have to remember every character class or anchor. Use F1 to trigger it and ESC to dismiss.
New explore config TUI [toc]
#17147 introduces the explore config command, which launches a TUI allowing you to view and interactively modify your config.
Functionality:
- When launched with no parameters, it loads your config settings into a tree and editor to allow you to traverse, explore, and change settings.
- When launched with the
--treeparameter, it draws a tree view of your piped in input into the terminal - When launched with the
--use-example-dataparameter, it shows you a customized configuration (my config actually). May be removed later. - When JSON is piped into it e.g
'{"abc": 1, "xyz": 2}' | explore config --output foo.jsonit allows you to explore and edit the JSON data and save it out to the provided filename. - When in "config mode" it shows you the nushell datatypes as you traverse the tree. When in "json" mode it shows you the json datatypes as you traverse the tree.
- When in "config mode" it shows you a description of the config setting assuming proper documentation in doc_config.nu. This file will need to be updated a bit in a separate PR. If there is no documentation it shows you a warning triangle by the tree item.
- As you make changes to your config, you can save those changes and they're immediately applied.
- If you hit Enter on any node leaf, you immediately jump into editing that value. If you hit Enter on tree nodes, the tree expands or collapses.
Below is a GIF showing off the TUI:
Help
❯ explore config --help
Launch a TUI to view and edit the nushell configuration interactively.
By default, opens the current nushell configuration ($env.config) in the TUI.
Changes made in config mode are applied to the running session when you quit.
You can also pipe JSON data to explore arbitrary data structures, or use
--use-example-data to see sample configuration data.
TUI Keybindings:
Tab Switch between tree and editor panes
↑↓ Navigate tree / scroll editor
←→ Collapse/Expand tree nodes
Enter/Space Toggle tree node expansion
Enter/Space On leaf nodes, open editor pane
Enter/e Start editing (in editor pane)
Ctrl+Enter Apply edit
Esc Cancel edit
Ctrl+S Save/Apply changes
q Quit (applies config changes if modified)
Ctrl+C Force quit without saving
Usage:
> explore config {flags}
Flags:
-h, --help: Display the help message for this command
-e, --use-example-data: Show the nushell configuration TUI using example data
-t, --tree: Do not show the TUI, just show a tree structure of the data
-o, --output <string>: Optional output file to save changes to (default: output.json)
Input/output types:
╭─#─┬──input──┬─output─╮
│ 0 │ nothing │ string │
│ 1 │ string │ string │
╰───┴─────────┴────────╯
Examples:
Open the nushell configuration in an interactive TUI editor
> explore config
Explore JSON data interactively
> open --raw data.json | explore config
Explore with example data to see TUI features
> explore config --use-example-dataFaster ls on Windows [toc]
#17339 makes ls much faster on Windows.
Before:
❯ use std/bench *
❯ bench { ls c:\windows\system32 | length } { ls c:\windows\system32 } --rounds 10
╭─#─┬────────────────code─────────────────┬──────────mean──────────┬──────────min───────────┬──────────max───────────┬───────std────────┬─ratio─╮
│ 0 │ { ls c:\windows\system32 | length } │ 1sec 536ms 50µs 650ns │ 1sec 502ms 450µs 200ns │ 1sec 605ms 537µs 100ns │ 29ms 468µs 800ns │ 1.01 │
│ 1 │ { ls c:\windows\system32 } │ 1sec 527ms 102µs 580ns │ 1sec 508ms 441µs 300ns │ 1sec 556ms 144µs 800ns │ 17ms 852µs 739ns │ 1.00 │
╰─#─┴────────────────code─────────────────┴──────────mean──────────┴──────────min───────────┴──────────max───────────┴───────std────────┴─ratio─╯After:
❯ use std/bench *
❯ bench { ls c:\windows\system32 | length } { ls c:\windows\system32 } --rounds 10
╭─#─┬────────────────code─────────────────┬───────mean────────┬────────min────────┬────────max────────┬───────std───────┬─ratio─╮
│ 0 │ { ls c:\windows\system32 | length } │ 171ms 623µs 760ns │ 167ms 632µs 400ns │ 182ms 443µs 100ns │ 4ms 263µs 43ns │ 1.01 │
│ 1 │ { ls c:\windows\system32 } │ 170ms 398µs 400ns │ 167ms 103µs 200ns │ 174ms 190µs 500ns │ 2ms 260µs 683ns │ 1.00 │
╰─#─┴────────────────code─────────────────┴───────mean────────┴────────min────────┴────────max────────┴───────std───────┴─ratio─╯Improvements to error make [toc]
#17070 introduced several improvements to error make.
Creating errors more easily
error make can now be called without arguments:
> error make
Error: nu::shell::error
× originates from here
╭─[entry #4:1:1]
1 │ error make
· ──────────
╰────It can also be passed a single message in any of the following ways:
- Pipeline input:
{msg: foo} | error make - Record argument:
error make {msg: foo} - String argument:
error make foo
Error: nu::shell::error
× foo
╭─[entry #2:1:12]
1 │ error make {msg: foo}
· ──────────
╰────Chaining errors together
error make already lets you created chained errors using inner, like so:
error make {msg: bar inner: [{msg: foo}]}Now, you can achieve the same effect by:
- Passing a message as pipeline input:
{msg: foo} | error make bar - Creating an error in a
catchblock:try {error make foo} catch {error make bar}
Here's how that second one looks:
Error: nu::shell::error
× bar
╭─[entry #1:1:29]
1 │ try {error make foo} catch {error make bar}
· ──────────
╰────
Error: nu::shell::error
× foo
╭─[entry #1:1:6]
1 │ try {error make foo} catch {error make bar}
· ──────────
╰────Labels
Labels can now be created without a text field, like this error that only has a span. The span is highlighted, but with an empty label:
> def f [x] {
error make {msg: here label: {span: (metadata $x).span}}
}
f abcd
Error: nu::shell::error
× here
╭─[entry #7:4:3]
3 │ }
4 │ f abcd
· ────
╰────External sources
The new src field allows highlighting spans of text in any file, not just internal Nushell spans.
> "foo\nbar\nbaz" | save -f /tmp/foo.bar
error make {
msg: 'error here'
src: {path: /tmp/foo.bar}
labels: [
{text: "this" span: {start: 4 end: 7}}
]
}
Error: nu::shell::outside
× error here
╭─[/tmp/foo.bar:2:1]
1 │ foo
2 │ bar
· ─┬─
· ╰── this
3 │ baz
╰────Changes [toc]
Breaking changes [toc]
Renamed $nu.temp-path and $nu.home-path [toc]
For consistency with other $nu fields:
$nu.temp-pathhas been renamed to$nu.temp-dir$nu.home-pathhas been renamed to$nu.home-dir
Implemented in #17129.
* no longer matches dotfiles in mv/cp/du by default [toc]
With #17185, the glob * won't match files whose names start with a dot (.) when using cp, mv, and du. However, these commands have a new --all(-a) flag for forcing the glob to match dotfiles.
> touch .a
> cp * /tmp
> "/tmp/.a" | path exists
falseUse labels for multiple labels in error make [toc]
Previously, when calling error make with a record argument, the label field could be either a single label or a list of labels. Now, it must be a single label. There is a new labels field that can hold a list of labels. Updated in #17070.
> def f [x y z] {
error make {msg: here labels: [
{text: "there" span: (metadata $x).span}
{text: "everywhere" span: (metadata $y).span}
{text: "somewhere" span: (metadata $z).span}
]
}
}
f abcd [x y z] {d: a}
Error: nu::shell::error
× here
╭─[entry #11:9:3]
8 │ }
9 │ f abcd [x y z] {d: a}
· ──┬─ ───┬─── ───┬──
· │ │ ╰── somewhere
· │ ╰── everywhere
· ╰── there
╰────IDE menu min_description_width should be non-zero [toc]
With reedline#996, the min_description_width setting for the IDE menu is used to determine when to switch the description to the left if description_mode is prefer_right. This means that if min_description_width is set to 0, the description box will always stay on the right, even when there isn't enough space to show it.
To fix this, set min_description_width to a width at which the description box can still hold a decent amount of text (e.g., 15, the new default).
to md formats lists as unordered Markdown lists [toc]
to md will now format lists as unordered Markdown lists by default. For more information, see New --list flag to control list formatting in to md.
Additions [toc]
New Configuration Option: $env.config.show_hints [toc]
You can now disable hints for completions and the history by setting $env.config.show_hints = false.
Configuring errors [toc]
New error_style = short setting
#17097 adds a new short option to $env.config.error_style for displaying errors as concise, single-line messages similar to classic shells.
$ ll
Error: External command failed: Command `ll` not found (Did you mean `all`?)New error_style = tree setting
#17105 adds a new tree option for $env.config.error_style to show related/nested errors.
New error_lines setting
#17105 adds a new $env.config.error_lines option to control the number of lines printed for error context. By default, this is set to 1.
Added record conversion to into list [toc]
With #17127, into list from std-rfc/conversions now handles record types.
use std-rfc/conversions *
{ a: 3, b: 7, c: 10 } | into list
# => ╭───┬─────┬───────╮
# => │ # │ key │ value │
# => ├───┼─────┼───────┤
# => │ 0 │ a │ 3 │
# => │ 1 │ b │ 7 │
# => │ 2 │ c │ 10 │
# => ╰───┴─────┴───────╯Include MCP server support by default [toc]
The MCP server support is now included as a default feature in #17151.
Connection pool for http commands [toc]
With #17157 http subcommands now have a --pool flag for reusing connections:
http get https://www.google.com --poolThe http pool command can be used to reset and customize the HTTP connection pool.
New --output flag for timeit [toc]
#17202 adds a flag called --output to the timeit command that will make the command return a record with both the execution time and the output of the closure.
> timeit --output { 'example text' }
╭────────┬──────────────╮
│ time │ 14328 │
│ output │ example text │
╰────────┴──────────────╯Allow disabling filtering in custom completions [toc]
#17253 allows disabling filtering in custom completions. This is useful if you have a completer that filters on something other than the value of the suggestion (e.g. a completer that displays git commits and filters based on commit description).
Note
If you disable filtering, your completions will also not be sorted.
New plugin interface get_block_ir [toc]
#17279 a new engine call to the plugin protocol for getting the compiled Intermediate Representation (IR) for a block:
fn get_block_ir(&self, block_id: BlockId) -> Result<IrBlock, ShellError>New --list flag to control list formatting in to md [toc]
With #17250, to md will format lists as unordered Markdown lists by default. The --list flag can be used to control this:
[a b c] | to md # => "* a\n* b\n* c"
[a b c] | to md --list unordered # => "* a\n* b\n* c"
[a b c] | to md --list ordered # => "1. a\n2. b\n3. c"
[a b c] | to md --list none # => "a\nb\nc"Warning
Breaking change: The previous behavior was equivalent to --list none (no formatting for lists). The new behavior is --list unordered.
Add --icons option to table for ls tables [toc]
Similar to ls | grid -i, now ls | table --icons will display file icons to the left of the filename. This can be used in your $env.config.hooks.display_output to always display icons when using ls. Implemented in #17248.
Alias definitions shown in which command [toc]
With #17338, the which command includes a definitions column when inspecting aliases to show the command that the alias expands to.
Allow serializing as raw strings in to nuon [toc]
#17189 adds a --raw-strings flag to to nuon for serializing strings with raw string syntax (r#'...'#) instead of strings with escapes.
Other additions [toc]
job flushcan now take a--tagto filter which messages to discard (#17056)- Add
$historyvariable to MCP (#17132)
Removals [toc]
Replace deprecated current_dir usage with EngineState::cwd in multiple files [toc]
#17303 removes some deprecated Rust functions from nu-engine that have been deprecated since Nushell 0.92.3:
current_dir_str()current_dir_str_const()current_dir()current_dir_const()
Other changes [toc]
Update explore regex command to look more helpful and professional [toc]
With #17149, the explore regex UI now looks more helpful and professional.
More descriptive error messages for rm [toc]
The rm command now provides more descriptive error messages when it runs into an IO error. Implemented in #17134.
Some Nushell commands no longer canonicalize paths [toc]
With #17319, rm, watch, and source no longer canonicalize paths. Additionally, the file path links in table view will no longer be canonicalized if you click them.
Add REPL-style state persistence across evaluations for MCP server [toc]
With #17121, variables and environment changes now persist across MCP tool calls (REPL-style). This enables workflows like
$env.MY_VAR = "hello" # First call
$env.MY_VAR # Second call returns "hello"Use structured response format for MCP server [toc]
With #17132, all MCP responses will be wrapped in a structured record with:
history_index: 0-based index of result in historycwd: current working directory after commandoutput: command output (possibly truncated)
Additional changes [toc]
- Single column dataframes (series) or expressions can now be passed into
polars is-in(#17275) - Lists can now be passed into
polars lit(#17275) bytes lengthcan now be used at const time (#17204)- Add a quick reference panel to
explore regexwith the F1 keybinding and dismiss it with the ESC keybinding. (#17187) - Within the
explorecommand the:nucommand will now stream content by spawning the command issues without blocking. (#17208) --helpis now available fordebug env. (#17278)- This PR adds the
memory_size()function on nushellValueso that we can get the size of variables to understand them better. (#17287) - Update agents.md for better LLM use. (#17318)
- Make
detect typemore robust with datetime handling by updating regular expressions (#17357)
Bug fixes [toc]
Fixed parsing of ranges with parentheses [toc]
Ranges that include a parenthesized expression will now be parsed correctly after #17109. The below example will now evaluate to the range 0..1 rather than being parsed as an invalid three-part range 0..(1..2.
0..(1..2 | first)Fixed parsing issue with multiarm match + guard [toc]
Match statements with multiple alarms and a guard expression, such as the below example, will now be parsed correctly after #17115. Previously, such an expression would fail to parse.
match 3 {
1 | 2 | 3 if true => 'test'
}Infinite sequences can be terminated when piped to other commands [toc]
#17245 allows infinite sequences to be terminated when piped to other commands.
> `1..inf | to md` # then press ctrl-c
^CError: nu::shell::error
× Operation interrupted
╭─[entry #1:1:1]
1 │ 1..inf | to md
· ───────┬──────
· ╰── This operation was interrupted
╰────Pipefail works with try block [toc]
With #17052, the following code will an empty list with additional 1, because the command is failed actually.
> nu --experimental-options=[pipefail]
> try {
^false | lines
} catch {|e|
print $e.exit_code
}Nushell exits early when running scripts or commands with bad config files [toc]
With #17103, if a script or command is run with a config.nu or env.nu that can't be evaluated, Nushell will exit.
echo 'errnocmd' | save config.nu
nu --config config.nu -c 'echo $env.NU_VERSION'This will exit with status code 1 rather than printing the Nushell version.
Fix http DNS resolution "Service not supported" error in Docker containers [toc]
With #17125, http commands will no longer error with "Service not supported for this socket type" in certain Linux environments (particularly Docker containers running Debian Trixie).
Fix variables remaining active after overlay hide [toc]
#17130 makes overlays work more reliably inside scripts.
#!/usr/bin/env nu
def something [] { "example" }
module spam {}
overlay use spam
def bar [] { "bar" }
overlay hide spam
barPreviously, bar would be available to use even after overlay hide spam. This has been fixed.
Other fixes [toc]
- Type mismatch errors no longer list the same type multiple times (#17075)
- Allow creating aliases for commands with required flags (#17106)
rmcan now delete broken symlinks on Windows (#17320)format datecan see locale environment variables set bywith-env(#17333)- Changes to
$env.configoutside ofconfig.nuare reflected in more places (17058) - Multiplying duration by integers now throws an error on overflow (#17063)
- rm command will return error when there is one file is failed to remove. (#17237)
- Changed the behavior of
cal --month-namesto create a newmonth_namecolumn instead of overridingmonth. (#17302) globno longer canonicalizes paths internally (#17312)- Fixed the issue where "Duplicate Pane" in Windows Terminal failed when the current path contained Chinese characters by removing unnecessary URL-encoding in OSC 9;9 sequences. (#17311)
- Enable
detect columnsto be more robust, specifically for handling the output of tablelike structures that are created with ascii or unicode table characters like we use in nushell today. Many tools are starting to use this columnar data output so hopefully this will enable nushell to be able to parse this data better. (#17317) - General speed up increase in the
lscommand by caching and not callingmetadata()so frequently. (#17339) input -swill append newline when user finishes typing. (#17298)std/help: Add colors, proper examples, fix output (#17010)table -i falseno longer panic when there is an index column, e.g:[{index: 0, data: yes}] | table -i false(#17126)
Notes for plugin developers [toc]
Hall of fame [toc]
Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏
| author | change | link |
|---|---|---|
| @migraine-user | Quick typo fix in docs for each | #17110 |
| @KaiSforza | Update flake.lock, added latest devshell variant | #17084 |
| @fdncred | Bump the rust-toolchain to 1.90.0 | #17133 |
| @blindFS | Use checked_sub in parse_range to avoid overflow | #17152 |
| @fdncred | Update doc config | #17168 |
| @fdncred | Update match count when test text changes | #17169 |
| @fdncred | Add search capability to explore config command | #17170 |
| @fdncred | Add syntax highlighting to explore config | #17176 |
| @fdncred | Refactor explore family of commands so that it's easier to understand and maintain | #17181 |
| @fdncred | Update uutils to 0.5.0 | #17183 |
| @WindSoilder | Add http pool cmd | #17177 |
| @fdncred | Add agents.md to help LLMs | #17148 |
| @fdncred | Update reedline to the latest commit | #17197 |
| @fdncred | Fix the mcp ctrl-c bug | #17199 |
| @sgvictorino | Make MCP server interruptible | #17200 |
| @fdncred | Increase help menu description rows from 10 to 15 | #17223 |
| @Ecorous | Bump rmp(-serde) to 0.8.15/1.3.1 | #17242 |
| @WindSoilder | Fix rm -f when some files not found | #17249 |
| @ysthakur | Bump reedline to latest main (reedline#991) | #17252 |
| @fdncred | Update reedline to latest commit | #17266 |
| @fdncred | The new command unlet will delete variables from memory. | #17270 |
| @fdncred | Fix explore searching | #17289 |
| @fdncred | Update reedline to latest commit | #17299 |
| @fdncred | Update nushell to latest reedline commit 6ceda500 | #17328 |
Full changelog [toc]
| author | title | link |
|---|---|---|
| @ChrisDenton | Introduce nupath::absolute_with and use it in glob | #17312 |
| @ChrisDenton | Replace uses of canonicalize in nu-command | #17319 |
| @ChrisDenton | Fix removing broken symlinks on Windows | #17320 |
| @DevAldrete | Allow disabling filtering in custom completions | #17253 |
| @Dorumin | --tag on job flush | #17056 |
| @Ecorous | Bump rmp(-serde) to 0.8.15/1.3.1 | #17242 |
| @IvolliousElectrolux | Fix OSC 9;9 path reporting in Windows Terminal (Fixes #17300) | #17311 |
| @Jan9103 | feat(bytes length): make available at const-time | #17204 |
| @KaiSforza | std/help: Add colors, proper examples, fix output | #17010 |
| @KaiSforza | error_make: Another rewrite of error make | #17070 |
| @KaiSforza | Update flake.lock, added latest devshell variant | #17084 |
| @KaiSforza | Fix up the env.rs tests | #17085 |
| @KaiSforza | Add error_lines and error_style = tree settings | #17105 |
| @NotTheDr01ds | Added record conversion to into list | #17127 |
| @NotTheDr01ds | Changed home-path/temp-path to home-dir/temp-dir | #17129 |
| @NotTheDr01ds | Added CARGO* and RUSTUP* environment variables back to test environment | #17186 |
| @NotTheDr01ds | Add --icons option to table for ls tables | #17248 |
| @Tyarel8 | feat(timeit): add --output flag | #17202 |
| @WindSoilder | pipefail: works inside try block | #17052 |
| @WindSoilder | Making --env-config and --config errors lead to error status code when running nu scripts or commands. | #17103 |
| @WindSoilder | merge_predecl don't move all predecls to overlay | #17130 |
| @WindSoilder | http commands can use builtin connection pool | #17157 |
| @WindSoilder | add http pool cmd | #17177 |
| @WindSoilder | mv/cp/du *: don't match dotfiles by default. | #17185 |
| @WindSoilder | rm: returns Error when it failed to remove a file | #17237 |
| @WindSoilder | Value::List and Value::Range can be interrupted when piping to other commands. | #17245 |
| @WindSoilder | fix rm -f when some files not found | #17249 |
| @WindSoilder | input -s: always write "\n" when user finished typing. | #17298 |
| @andrewgazelka | feat(mcp): output NUON format instead of expanded string | #17119 |
| @andrewgazelka | refactor(mcp): extract tool descriptions to markdown files | #17120 |
| @andrewgazelka | feat(mcp): add REPL-style state persistence across evaluations | #17121 |
| @andrewgazelka | feat(mcp): add $history variable and structured response format | #17132 |
| @andrewgazelka | docs(mcp): add string interpolation syntax to instructions | #17153 |
| @andrewgazelka | docs(mcp): add stderr redirection BAD/GOOD examples to instructions | #17163 |
| @andrewgazelka | docs(mcp): add par-each preference to instructions | #17171 |
| @andrewgazelka | feat(nuon): add raw string serialization support | #17189 |
| @app/dependabot | build(deps): bump actions/checkout from 5 to 6 | #17076 |
| @app/dependabot | build(deps): bump schemars from 1.0.4 to 1.1.0 | #17078 |
| @app/dependabot | build(deps): bump crate-ci/typos from 1.39.2 to 1.40.0 | #17108 |
| @app/dependabot | build(deps): bump bytesize from 2.1.0 to 2.3.1 | #17139 |
| @app/dependabot | build(deps): bump actions/upload-artifact from 5 to 6 | #17190 |
| @app/dependabot | build(deps): bump http from 1.3.1 to 1.4.0 | #17191 |
| @app/dependabot | build(deps): bump bytes from 1.10.0 to 1.11.0 | #17192 |
| @app/dependabot | build(deps): bump winreg from 0.52.0 to 0.55.0 | #17193 |
| @app/dependabot | build(deps): bump strum from 0.26.3 to 0.27.2 | #17194 |
| @app/dependabot | build(deps): bump procfs from 0.17.0 to 0.18.0 | #17195 |
| @app/dependabot | build(deps): bump rmcp from 0.8.1 to 0.8.5 | #17224 |
| @app/dependabot | build(deps): bump toml from 0.8.19 to 0.9.10+spec-1.1.0 | #17225 |
| @app/dependabot | build(deps): bump mach2 from 0.4.3 to 0.6.0 | #17227 |
| @app/dependabot | build(deps): bump crate-ci/typos from 1.40.0 to 1.40.1 | #17259 |
| @app/dependabot | build(deps): bump tempfile from 3.23.0 to 3.24.0 | #17261 |
| @app/dependabot | build(deps): bump csv from 1.3.1 to 1.4.0 | #17262 |
| @app/dependabot | build(deps): bump uuid from 1.18.1 to 1.19.0 | #17264 |
| @app/dependabot | build(deps): bump calamine from 0.28.0 to 0.32.0 | #17306 |
| @app/dependabot | build(deps): bump fancy-regex from 0.16.1 to 0.17.0 | #17307 |
| @app/dependabot | build(deps): bump unicase from 2.8.0 to 2.9.0 | #17308 |
| @app/dependabot | build(deps): bump tokio from 1.46.1 to 1.49.0 | #17309 |
| @app/dependabot | build(deps): bump lru from 0.12.5 to 0.16.3 | #17313 |
| @app/dependabot | build(deps): bump dialoguer from 0.11.0 to 0.12.0 | #17314 |
| @app/dependabot | build(deps): bump shadow-rs from 1.4.0 to 1.5.0 | #17315 |
| @app/dependabot | build(deps): bump schemars from 1.1.0 to 1.2.0 | #17316 |
| @app/dependabot | build(deps): bump crate-ci/typos from 1.41.0 to 1.42.0 | #17343 |
| @astral-l | Add month_name column to cal --month-names | #17302 |
| @atahabaki | Do not treat 0 as padding always | bracoxide | str expand | #17294 |
| @ayax79 | Azure blob storage support for polars | #17116 |
| @ayax79 | Polars: Add google cloud support | #17135 |
| @ayax79 | Added mcp to default and all features | #17151 |
| @ayax79 | Polars: Allow series and expressions to be passed into polars is-in | #17275 |
| @ayax79 | Polars: Introduce selector support | #17296 |
| @blackhat-hemsworth | deduplicated types in type_check process to improve error message | #17075 |
| @blackhat-hemsworth | [fix] fixed issue with alias "missing required flag" on create | #17106 |
| @blackhat-hemsworth | fixed handling of ranges with respect to parentheses | #17109 |
| @blackhat-hemsworth | fixed parsing issue with multiarm match + guard | #17115 |
| @blackhat-hemsworth | fix--propagate more descriptive error message for rm Os errors | #17134 |
| @blindFS | fix(parser): use checked_sub in parse_range to avoid overflow | #17152 |
| @cptpiepmatz | Replace dep rust-embed with custom code generation | #17276 |
| @cptpiepmatz | Use Signature::build instead of new on debug env | #17278 |
| @dhr412 | Add definition column to which command for aliases | #17338 |
| @fdncred | bump the rust-toolchain to 1.90.0 | #17133 |
| @fdncred | new command: explore config TUI | #17147 |
| @fdncred | add agents.md to help LLMs | #17148 |
| @fdncred | update explore regex command to look more helpful and professional | #17149 |
| @fdncred | Update doc config | #17168 |
| @fdncred | update match count when test text changes | #17169 |
| @fdncred | add search capability to explore config command | #17170 |
| @fdncred | clean up explore a bit | #17172 |
| @fdncred | Add syntax highlighting to explore config | #17176 |
| @fdncred | refactor explore family of commands so that it's easier to understand and maintain | #17181 |
| @fdncred | update uutils to 0.5.0 | #17183 |
| @fdncred | Add quick reference panel to explore regex command | #17187 |
| @fdncred | update reedline to the latest commit | #17197 |
| @fdncred | fix the mcp ctrl-c bug | #17199 |
| @fdncred | Stream explore nu output | #17208 |
| @fdncred | use graphemes instead of byte indexes in explore regegx | #17219 |
| @fdncred | Increase help menu description rows from 10 to 15 | #17223 |
| @fdncred | Allow let to be able to be used at the end of the pipeline | #17247 |
| @fdncred | update reedline to latest commit | #17266 |
| @fdncred | new command: unlet | #17270 |
| @fdncred | add memory_size function on nushell's Value | #17287 |
| @fdncred | Fix explore searching | #17289 |
| @fdncred | update reedline to latest commit | #17299 |
| @fdncred | replace deprecated current_dir usage with EngineState::cwd in multiple files | #17303 |
| @fdncred | make detect columns more robust + refactor + new switch | #17317 |
| @fdncred | add more details to agents.md | #17318 |
| @fdncred | update nushell to latest reedline commit 6ceda500 | #17328 |
| @fdncred | make ls faster | #17339 |
| @fdncred | Update evaluate_tool.md | #17342 |
| @fdncred | add better regex pattern handling | #17357 |
| @hustcer | Fix http DNS resolution "Service not supported" error in Docker containers | #17125 |
| @hustcer | Fix table -i false panic when there is an index column | #17126 |
| @hustcer | Upgrade nushell to 0.109.1 for release and nightly workflow | #17131 |
| @hustcer | Add --list flag to to md for ordered/unordered/none list formatting | #17250 |
| @hustcer | Fix typo & upgrade crate-ci/typos | #17310 |
| @kaathewisegit | fix: throw errors on overflow in duration integer multiplication | #17063 |
| @kouhe3 | use win_uds as uds on windows | #17214 |
| @migraine-user | Quick typo fix in docs for each | #17110 |
| @playwmadness | Update --allow-dtd hint phrasing for from xml | #17218 |
| @playwmadness | fix(#17321): with-env not applying locale env vars to format date | #17333 |
| @reubeno | update reedline to the latest commit | #17203 |
| @sgvictorino | use Stack::get_config() in more places | #17058 |
| @sgvictorino | make MCP server interruptible | #17200 |
| @splintersuidman | Add configuration option for whether to show hints | #17156 |
| @tom-lubenow | Add GetBlockIR engine call to plugin protocol | #17279 |
| @yanek | Add short error_style | #17097 |
| @ysthakur | fix: Make custom completer spans relative to command expr | #17060 |
| @ysthakur | Bump reedline to latest main (reedline#991) | #17252 |
| @ysthakur | Change default IdeMenu min_description_width to 15 | #17280 |
| @ysthakur | Pin reedline to 0.45 for 0.110 release | #17366 |