Skip to content

Commit 79e09da

Browse files
committed
add pr links to summaries
1 parent 173471d commit 79e09da

File tree

1 file changed

+49
-48
lines changed

1 file changed

+49
-48
lines changed

blog/2025-10-14-nushell_v0_108_0.md

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ As part of this release, we also publish a set of optional [plugins](https://www
4646

4747
## Breaking changes
4848

49-
### Pass optional and casing to follow path methods for `CustomValue`
49+
### Pass optional and casing to follow path methods for `CustomValue` ([#16736])
5050
Plugin authors that use `CustomValue` can now access the `optional` and `casing` fields in their `follow_path_int` and `follow_path_string` methods to add behavior for optional access or case sensitivity.
5151

5252
This is a breaking change for the plugin signature so it needs an update. Simply ignoring these fields may be a valid solution.
5353

54-
### `into value` is now `detect type`, and `into value` now converts custom values to plain values
54+
### `into value` is now `detect type`, and `into value` now converts custom values to plain values ([#16697])
5555
Until 0.107, `into value` tried to detect the types of table cells. It converted strings into typed values, which is where the name came from. But it didn't match the purpose of the other `into` commands.
5656
This command is now called `detect type` but it doesn't operate on cells anymore, so you have to call `update cells {detect type}` to use that functionality again. With that we can also use that command on non-table types to try to infer the types.
5757
The `into value` name is now used for converting custom values from plugins into native Nushell values.
@@ -68,7 +68,7 @@ CoolCustomValue
6868
string
6969
```
7070

71-
### Collecting a stream that contains errors now raises an error itself
71+
### Collecting a stream that contains errors now raises an error itself ([#16738])
7272

7373
Previously, if an error was returned as a stream item and you collected that stream into a value, you would and up with a list that has an `error` item which you wouldn't know about until you interacted with that specific item.
7474

@@ -177,7 +177,7 @@ Error:
177177
╰────
178178
```
179179

180-
### Changes to `EditCommand`s:
180+
### Changes to `EditCommand`s ([#16841])
181181

182182
- renamed `cutinside` to `cutinsidepair`
183183
- renamed `yankinside` to `copyinsidepair`
@@ -186,7 +186,7 @@ Error:
186186
- added `cuttextobject`
187187
- added `copytextobject`
188188

189-
### Vi Mode Text Objects
189+
### Vi Mode Text Objects ([#16841])
190190

191191
Vi mode now supports inner and around (`i` and `a`) text objects for:
192192
- word, bound to `w` (a sequence of letters, digits and underscores, separated with white space)
@@ -206,7 +206,7 @@ It simply searches for the previous and next matching characters.
206206

207207
### Other breaking changes
208208

209-
* ### The LSP session is no longer marked as interactive (`$nu.is-interactive == false`) ([#16580])
209+
* The LSP session is no longer marked as interactive (`$nu.is-interactive == false`) ([#16580])
210210

211211
* The Polars plugin's value types are renamed to be prefixed with `polars_` (e.g. polars_dataframe) ([#16819])
212212

@@ -231,15 +231,15 @@ NU_EXPERIMENTAL_OPTIONS="all" nu
231231

232232
:::
233233

234-
### Promoted `reorder-cell-paths` to opt-out
234+
### Promoted `reorder-cell-paths` to opt-out ([#16795])
235235

236236
In Nushell 0.106.0, [experimental options](https://www.nushell.sh/blog/2025-07-23-nushell_0_106_0.html#experimental-options-toc) were added, first of which is [`reorder-cell-paths`](https://github.com/nushell/nushell/issues/16766). With this release `reorder-cell-paths` is promoted to being opt-out, meaning that by default this experimental option is enabled now.
237237

238238
This option improves cell-path accesses by reordering how the cell-path should be evaluated without modifying the output in any way.
239239

240240
If you experience any trouble with this, you can disable it via passing `reorder-cell-paths=false` via the command-line argument or environment variable.
241241

242-
### Pipefail
242+
### Pipefail ([#16449])
243243

244244
This release adds a new experimental option: `pipefail`.
245245

@@ -270,7 +270,7 @@ Error: nu::shell::non_zero_exit_code
270270
 ╰────
271271
```
272272

273-
### Enforce Assignment Type Annotations at Runtime
273+
### Enforce Assignment Type Annotations at Runtime ([#16079])
274274

275275
Nushell is perfectly capable of catching type errors at parse time...
276276

@@ -374,7 +374,7 @@ Error: nu::shell::cant_convert
374374

375375
</details>
376376

377-
### `--endian` flag for `format bits`
377+
### `--endian` flag for `format bits` ([#16574])
378378

379379
`format bits` used to output in native endian, until Nu 0.107.0 (#16435) changed it to big endian. Now, you will be able to choose the behavior with `--endian` (use `format bits --endian native` to get the original behavior from before Nu 0.107.0).
380380

@@ -388,7 +388,7 @@ Error: nu::shell::cant_convert
388388
00000010 00000001
389389
```
390390

391-
### `for` loops no longer collect their source
391+
### `for` loops no longer collect their source ([#16593])
392392
Previously, `for` loops only worked with values (ranges, lists, etc), so using them with streaming commands would collect the whole stream before iteration could start. Now it also works with streams too!
393393

394394
This makes it possible to use it with slow or unbounded streams:
@@ -399,7 +399,7 @@ for event in (watch . --glob=**/*.rs) {
399399
}
400400
```
401401

402-
### Guess no more! More completions in built-in commands.
402+
### Guess no more! More completions in built-in commands ([#16383])
403403

404404
Thanks to some recent improvements behind the scenes, nushell built-in commands that expect a specific set of values now suggests these values.
405405

@@ -419,12 +419,12 @@ The following commands now have suggestions:
419419
- `table --theme <...>`
420420
- `split list --split <...>`
421421

422-
### Add `$nu.is-lsp` to help with printing in lsp mode
422+
### Add `$nu.is-lsp` to help with printing in lsp mode ([#16635])
423423
When nushell is launched with the `--lsp` flag, nushell will set `$nu.is-lsp` to true so that users can programmatically know when nushell is in LSP mode.
424424

425425
When in LSP mode, the `print` command will only print to stderr. This is done to prevent the LSP from misbehaving when it sees text that isn't JSON-RPC in stdout, which is being listened to by the LSP.
426426

427-
### New Configuration Option: `$env.config.table.batch_duration`
427+
### New Configuration Option: `$env.config.table.batch_duration` ([#16629])
428428

429429
It is now possible to configure the batch duration for the `table` command.
430430

@@ -471,7 +471,7 @@ $env.config.table.batch_duration = 2sec
471471
# ╰───┴─────────────╯
472472
```
473473

474-
### New Configuration Option: `$env.config.table.stream_page_size`
474+
### New Configuration Option: `$env.config.table.stream_page_size` ([#16629])
475475

476476
It is now possible to configure the maximum page size of streamed data in the `table` command.
477477

@@ -502,7 +502,7 @@ $env.config.table.stream_page_size = 2
502502
# ╰───┴────────╯
503503
```
504504

505-
### Table literal columns support variables
505+
### Table literal columns support variables ([#16669])
506506
Table literals can now have variables in the column names list. For example, this is now allowed:
507507
```ansi:no-line-numbers
508508
> let column_name = 'column0'
@@ -519,7 +519,7 @@ Table literals can now have variables in the column names list. For example, thi
519519
╰───┴─────────┴─────────╯
520520
```
521521

522-
### Add %J and %Q format specifiers for compact date/time formatting
522+
### Add %J and %Q format specifiers for compact date/time formatting ([#16588])
523523
The `format date` and `into datetime` commands now support two new format specifiers for creating compact, sortable date and time components:
524524

525525
- **%J** produces compact dates in `YYYYMMDD` format (e.g., `20250918`)
@@ -537,7 +537,7 @@ Both commands use the same format specifications, ensuring consistency when pars
537537

538538
This addition is fully backward compatible - all existing format specifiers continue to work unchanged.
539539

540-
### Add configuration for columnar menu traversal direction
540+
### Add configuration for columnar menu traversal direction ([#16724])
541541
The feature makes it possible to choose the direction that items are placed in the columnar menu. With the default value of `"horizontal"`, items are ordered left-to-right in each row, with later items appearing in rows below earlier items.
542542
```
543543
1 2 3 4
@@ -575,7 +575,7 @@ $env.config.menus ++= [{
575575
}]
576576
```
577577

578-
### Nushell MCP Server
578+
### Nushell MCP Server ([#16693], [#16758], [#16839], [#16857])
579579

580580
When compiled with the "mcp" feature (not a part of the default feature set), the nushell binary can be used as a local (stdio) MCP server.
581581

@@ -586,15 +586,15 @@ nu --mcp
586586

587587
This will allow a local AI agent to use MCP to execute native nushell commands and external commands.
588588

589-
### Add `--chars` to `str length` command
589+
### Add `--chars` to `str length` command ([#16768])
590590
The `str length` command now has a `--chars` flag to allow you to count characters.
591591

592592
```nushell
593593
> 'hällo' | str length --chars
594594
5
595595
```
596596

597-
### Simple syntax for simple completions
597+
### Simple syntax for simple completions ([#16789])
598598

599599
Custom completions are powerful, able to provide dynamic completions based on what's written on the command line so far.
600600

@@ -619,7 +619,7 @@ Completions can be provided as a list of strings inline in the command signature
619619
```
620620

621621

622-
### Streams of Streams
622+
### Streams of Streams ([#16735])
623623

624624
When you run `each` over a list (or stream), it can only return a single item for each input. When we need to create multiple values from a single input, we can just return a list in the closure and run the output through `flatten`.
625625

@@ -682,7 +682,7 @@ def slow-source [range: range] {
682682
</tbody>
683683
</table>
684684

685-
### Command-wide completion handler
685+
### Command-wide completion handler ([#16765])
686686

687687
There is big difference between custom completions that can be specified in a command's signature, and the "global" external completer (`$env.config.completions.external.completer`).
688688

@@ -772,7 +772,7 @@ def fish-completer [spans: list<string>] {
772772

773773
</details>
774774

775-
### The `to md` command now always returns valid Markdown tables
775+
### The `to md` command now always returns valid Markdown tables ([#16681])
776776
Previously, a command like this:
777777
```shell
778778
> [['foo' 'bar']; ['1 | 2' 'a | b']] | to md
@@ -790,17 +790,17 @@ Now, such special characters are automatically escaped, ensuring the output alwa
790790
| 1 \| 2 | a \| b |
791791
```
792792

793-
### New switches are available for `to md`
793+
### New switches are available for `to md` ([#16681])
794794
- `--escape-md` | `-m` escape all Markdown special characters
795795
- `--escape-html` | `-t` escape HTML special characters
796796
- `--escape-all` | `-a` escape both HTML and Markdown
797797

798-
### `compact` your records
798+
### `compact` your records ([#16810])
799799
`compact` can now be used to remove `null` or `--empty` items from records too.
800800

801-
### `compact --empty` now recognizes 0 byte binary values as empty.
801+
### `compact --empty` now recognizes 0 byte binary values as empty ([#16810])
802802

803-
### Arbitrary Pipeline Metadata
803+
### Arbitrary Pipeline Metadata ([#16821])
804804

805805
In addition to existing metadata fields (`content_type`, `source`, `span`), it's now possible to attach arbitrary metadata fields to pipeline data using `metadata set --merge`:
806806

@@ -810,7 +810,7 @@ In addition to existing metadata fields (`content_type`, `source`, `span`), it's
810810

811811
Combined with `metadata access`, this makes it possible to carry extra data with streams, without impacting the stream data itself.
812812

813-
### HTTP Response Metadata
813+
### HTTP Response Metadata ([#16821])
814814

815815
All `http` commands now attach response data (previously only accessible with `http * --full`) as metadata to their output streams. This can be accessed under the `http_response` field within the pipeline metadata:
816816

@@ -839,12 +839,12 @@ http get --allow-errors https://api.example.com/events.jsonl
839839

840840
### Breaking changes
841841

842-
842+
### `collect` removes `source` metadata (TODO)
843843

844844
`collect` now removes `source` metadata field even when `content_type` is set.
845845
Previously: both were preserved, now only `content_type` is preserved.
846846

847-
### `string`s and `glob`s can now be implicitly cast between each other
847+
### `string`s and `glob`s can now be implicitly cast between each other ([#16079])
848848

849849
Previously `string` types were not able to be coerced into `glob` types (and vice versa).
850850
They are now subtypes of each other.
@@ -878,15 +878,16 @@ aa
878878

879879
* New operators: `not-starts-with` and `not-ends-with`. Added for parity with other comparison operators. ([#16852])
880880

881-
* ### Added file completions for command redirections (`o>>`, `e>`, ...) ([#16831])
881+
* Added file completions for command redirections (`o>>`, `e>`, ...) ([#16831])
882+
882883
## Other changes
883884

884-
### Add `network` feature to top-level crate
885+
### Add `network` feature to top-level crate ([#16686])
885886
Nushell can now be compiled without network related commands.
886887

887888
If you are manually building Nushell without default features (`cargo build --no-default-features`) you will now need to pass `--features network` to get access the network commands.
888889

889-
### Improved error messages for binary literals
890+
### Improved error messages for binary literals ([#16688])
890891
Previously, a generic shell error is thrown for invalid binary strings. Now, an improve error message is thrown for invalid binary, hexadecimal, and octal strings.
891892
```nushell
892893
0b[121]
@@ -903,7 +904,7 @@ Error: nu::parser::invalid_binary_string
903904
 help: binary strings may contain only 0 or 1.
904905
```
905906

906-
### Polars 50.1 upgrade
907+
### Polars 50.1 upgrade ([#16703])
907908
- `polars fetch` has been removed due to no longer being supported on LazyFrame
908909
- introduced flag `--drop-nulls` to `polars dummies`
909910
- introduced flag `--separator` to `polars dummies`
@@ -915,12 +916,12 @@ Error: nu::parser::invalid_binary_string
915916
- Introduced flag `--time-zone` to `polars as-datetime`
916917
- Introduced flag `--time-unit` to `polars as-datetime`
917918

918-
### Allow saving `CustomValue`s
919+
### Allow saving `CustomValue`s ([#16692])
919920
> TODO(release-notes): Move this into plugin authors section.
920921
921922
`CustomValue` now supports a `save` method. Implementors can use it to make their values savable to disk.
922923

923-
### Add `run pr` and `download pr` to `toolkit`
924+
### Add `run pr` and `download pr` to `toolkit` ([#16770])
924925
The toolkit in the Nushell repository can now download and run PRs by downloading artifacts from CI runs. It can be run like this:
925926
```nushell
926927
use toolkit
@@ -933,7 +934,7 @@ toolkit run pr <number>
933934

934935
## Bug fixes
935936

936-
### Discard `path add` input
937+
### Discard `path add` input ([#16606])
937938
Previously `path add` (from `std/util`) could fail if it was fed `any` input.
938939
```ansi:no-line-numbers
939940
> use std/util 'path add'
@@ -957,34 +958,34 @@ Now any input to `path add` will be discarded. It's still possible to pass it wi
957958
[a b c] | each {|p| $env.HOME | path join $p } | path add $in
958959
```
959960

960-
### Aliases are now expanded before being sent to external completers
961+
### Aliases are now expanded before being sent to external completers ([#16640])
961962

962963
Before this change, when an external completer was invoked for an alias, the first argument sent to the completer would be the alias itself instead of the aliased command.
963964

964965
For example, with an alias defined as `alias gl = git log`, typing `gl branch_name` and pressing `TAB` would send the arguments `gl`, `log`, `branch_name` to the external completer.
965966

966967
After this change, the alias is expanded and the arguments sent to the external completer will be `git`, `log`, `branch_name`.
967968

968-
### Fixed IR evaluation error caused by redirecting output of branched blocks
969+
### Fixed IR evaluation error caused by redirecting output of branched blocks ([#16676])
969970

970971
The following commands will no longer raise ir-eval errors:
971972

972973
- `if true { echo "hey" } out> /dev/null`
973974
- `if false { echo "hey" } else { echo "ho" } out> /dev/null`
974975
- `try { 1/0 } catch { echo "hi" } out> /dev/null`
975976

976-
### Dotnu completion refactor, fixes path with space for both dotnu module path and external executable
977+
### Dotnu completion refactor, fixes path with space for both dotnu module path and external executable ([#16715])
977978
Module path completion for command `use`/`source` now behaviors in the same manner of basic file completion, which is less error prone when dealing with paths with spaces or other special characters.
978979

979980
Fixed the bug of empty result of external executable path completion at the head of a pipeline when the path prefix contains spaces.
980981

981-
### boolean coloring in light theme
982+
### boolean coloring in light theme (TODO)
982983
When using `std/config light-theme`, booleans inside structures are now colored in dark cyan instead of white, which was very hard to read in combination with a light terminal background.
983984

984-
### changed fallback for unknown color names
985+
### changed fallback for unknown color names (TODO)
985986
If some named color in `$env.config.color_config` is misspelled or otherwise unknown to nu, the corresponding element is now colored using the terminal's default (as in `ansi reset`) instead of white.
986987

987-
### Improve collection type inference
988+
### Improve collection type inference ([#16530])
988989
Fixes order-dependent table type inference bugs and introduces similar type widening for lists:
989990

990991
```nushell
@@ -1000,7 +1001,7 @@ let foo = [ { baz: 1 }, { baz: 1, extra: true } ]
10001001
get_type # list<any> -> list<record<baz: int>>
10011002
```
10021003

1003-
### Using `break`/`continue` outside loops raises a compile error
1004+
### Using `break`/`continue` outside loops raises a compile error ([#16740])
10041005

10051006
Previously this error wasn't caught during compilation, and manifested as a runtime error when the execution reached the invalid `break`/`continue` call.
10061007

@@ -1026,11 +1027,11 @@ Error: × Main thread panicked.
10261027
 ╰────
10271028
```
10281029

1029-
### Windows device path fixes
1030+
### Windows device path fixes ([#16775])
10301031
* On Windows, UNC and device paths no longer get a trailing `\` appended when being cast to `path`
10311032
* On Windows, `open`, `save` and `source` now work with device paths like `\\.\NUL` or `\\.\CON`, as well as reserved device names like `NUL` and `CON`. Using full device paths is recommended.
10321033

1033-
### Clean up error handlers when jumping outside of `try` blocks
1034+
### Clean up error handlers when jumping outside of `try` blocks ([#16838])
10341035

10351036
Previously, jumping out of a `try` block (possible with `break`/`continue` commands) did not clean up the error handler properly the way exiting it normally does.
10361037

@@ -1070,7 +1071,7 @@ This was due to a miscompilation bug, which is now fixed.
10701071

10711072
* Fixed building `nu-command` by itself. ([#16616])
10721073

1073-
* ### `for` and `while` loop blocks starting with a range literal no longer causes a compiler error ([#16764])
1074+
* `for` and `while` loop blocks starting with a range literal no longer causes a compiler error ([#16764])
10741075

10751076
* Some `attr` subcommands had incorrect output signatures, which are now fixed. ([#16774])
10761077

0 commit comments

Comments
 (0)