You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: blog/2025-09-02-nushell_0_107_0.md
+32-32Lines changed: 32 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,7 +46,7 @@ As part of this release, we also publish a set of optional [plugins](https://www
46
46
47
47
## Breaking changes
48
48
49
-
### `find` is now case-sensitive by default
49
+
### `find` is now case-sensitive by default ([#16323](https://github.com/nushell/nushell/pull/16323))
50
50
51
51
The `find` command is now case-sensitive by default in all modes. Previously, you could use the `--ignore-case` flag to make `find` case-insensitive in the `--regex` mode, but the default "search term mode" would always be case-insensitive. Now, both modes are case-sensitive by default, and you can use the `--ignore-case` flag to make them case-insensitive.
52
52
@@ -61,7 +61,7 @@ alias find = find -i
61
61
62
62
:::
63
63
64
-
### New behavior for `find --multiline`
64
+
### New behavior for `find --multiline` ([#16323](https://github.com/nushell/nushell/pull/16323))
65
65
66
66
Previously, `find` would always split multi-line input strings, making it impossible to perform proper multi-line regex matches unless a string was within list, table, or record. Now, the `--multiline` flag can be used to prevent this splitting, replacing its previous behavior of prepending `(?m)` to the regex.
67
67
@@ -78,7 +78,7 @@ hel[41mlo
78
78
wo[49mrl[0m
79
79
```
80
80
81
-
### `random dice` moved to `std`
81
+
### `random dice` moved to `std` ([#16420](https://github.com/nushell/nushell/pull/16420))
82
82
83
83
The `random dice` command has been rewritten in Nushell and moved to the standard library. The `random dice` built-in is still available with a deprecation error, but will be removed in 0.108. The new command can be used as follows:
84
84
@@ -92,7 +92,7 @@ The `random dice` command has been rewritten in Nushell and moved to the standar
92
92
93
93
It's behavior, parameters, and defaults are the same.
94
94
95
-
### `each` now passes through `null` input
95
+
### `each` now passes through `null` input ([#16396](https://github.com/nushell/nushell/pull/16396))
96
96
97
97
When `null` is passed to the `each` command, it now returns `null` instead of passing `null` to the closure.
98
98
For example, before this change:
@@ -114,7 +114,7 @@ nothing[38;5;14m
114
114
>[0m
115
115
```
116
116
117
-
### Execution Order of Hooks Changed: `env_change`_before_`pre_prompt`
117
+
### Execution Order of Hooks Changed: `env_change`_before_`pre_prompt` ([#16356](https://github.com/nushell/nushell/pull/16356))
118
118
119
119
Before this release `env_change` hooks would execute _after_`pre_prompt` hooks, and the prompt would be rendered after `env_change` hooks.
120
120
@@ -126,7 +126,7 @@ Now, order of execution is as follows:
126
126
-`pre_prompt` hooks
127
127
- Rendering the prompt with `PROMPT_COMMAND`
128
128
129
-
### `query xml` returns scalar results when possible
129
+
### `query xml` returns scalar results when possible ([#16459](https://github.com/nushell/nushell/pull/16459))
130
130
131
131
Previously, `query xml` always returned a table, even for scalar results. Now scalar results will be returned as scalars.
132
132
@@ -149,7 +149,7 @@ Before this change, this would return:
149
149
150
150
Now, this will just return `false`.
151
151
152
-
### Use fixed column name for `query xml` output
152
+
### Use fixed column name for `query xml` output ([#16461](https://github.com/nushell/nushell/pull/16461))
153
153
154
154
Previously, the `query xml` command outputs nodeset results in a table with a column name corresponding to the input expression. Now, the column name is fixed. This should make it easier to extract values from the output of `query xml`.
155
155
@@ -179,7 +179,7 @@ open -r tests/fixtures/formats/jt.xml
### Change the output of `format bits` to big endian instead of native endian
182
+
### Change the output of `format bits` to big endian instead of native endian ([#16435](https://github.com/nushell/nushell/pull/16435))
183
183
184
184
While the most popular architectures use little endian, many people are used to reading binary numbers as big endian. However, until now, if you were in a little endian system, you would get:
185
185
@@ -202,7 +202,7 @@ Now, `format bits` always formats in big endian:
202
202
00000001 00000010[0m
203
203
```
204
204
205
-
### Add active column to `overlay list`
205
+
### Add active column to `overlay list` ([#16125](https://github.com/nushell/nushell/pull/16125))
206
206
207
207
`overlay list` now returns table instead of list of overlays. Before, only active overlays were included in `overlay list`. Now, hidden overlays will be included as well, and there is a column indicating whether a given overlay is hidden or not.
208
208
@@ -213,18 +213,18 @@ For migrating to the new behavior, you can update any usages of `overlay list |
213
213
214
214
## Additions
215
215
216
-
### New `watch --debounce` option
216
+
### New `watch --debounce` option ([#16187](https://github.com/nushell/nushell/pull/16187))
217
217
218
218
The `watch` command now has `--debounce` flag, which takes a duration value. This will replace the `--debounce-ms` flag which takes an int rather than a duration, and will eventually take over its `-d` short flag.
> TODO(release-notes): Move this to Deprecations section
223
223
> TODO(release-notes): verify link works after generating ToC
224
224
225
225
With the new [watch --debounce option](#new-watch-duration-option-toc), the `--debounce-ms` option is no longer necessary. Use `watch --debounce` with a duration value instead.
226
226
227
-
### Add `-h/--help` flag to testbin
227
+
### Add `-h/--help` flag to testbin ([#16196](https://github.com/nushell/nushell/pull/16196))
228
228
229
229
`nu --testbin` has a new flag `-h` to show available \<bins\>
230
230
@@ -250,7 +250,7 @@ repeat_bytes -> A version of repeater that can output binary data, even null byt
250
250
repeater -> Repeat a string or char N times(e.g: nu --testbin repeater a 5)[0m
251
251
```
252
252
253
-
### New keybinding: `vichangemode`
253
+
### New keybinding: `vichangemode` ([#16327](https://github.com/nushell/nushell/pull/16327))
254
254
255
255
You can now set bindings which change the Vi mode.
256
256
To do so send a `vichangemode` event with the `mode` field to set `normal`, `insert`, or `visual`
@@ -268,7 +268,7 @@ $env.config.keybindings ++=
268
268
269
269
The available modifiers and keycodes, remain limited to single character bindings with modifiers. We don't yet provide access to the key-chord parsing of the vi mode.
270
270
271
-
### JSON column support for `stor` and `query db`
271
+
### JSON column support for `stor` and `query db` ([#16258](https://github.com/nushell/nushell/pull/16258))
272
272
273
273
The `stor create/insert/open` and `query db` commands now support JSON and JSONB columns. This lets you store more kinds of structured data directly inside of an SQLite database without an explicit `to`/`from` step.
274
274
@@ -308,7 +308,7 @@ Here's an example of storing a simple table inside a `stor` database, and retrie
308
308
╰───┴───────────╯[0m
309
309
```
310
310
311
-
### New `random choice` command in `std-rfc`
311
+
### New `random choice` command in `std-rfc` ([#16270](https://github.com/nushell/nushell/pull/16270))
312
312
313
313
The `random choice` command has been added as a new candidate for our standard library. This command can randomly sample a number of elements from a list:
314
314
@@ -321,7 +321,7 @@ The `random choice` command has been added as a new candidate for our standard l
321
321
╰───┴───╯[0m
322
322
```
323
323
324
-
### Add `str align` to `std-rfc/str`
324
+
### Add `str align` to `std-rfc/str` ([#16062](https://github.com/nushell/nushell/pull/16062))
325
325
326
326
The `std-rfc/str` module has new command in this release, `str align`. This command will look for a substring (such as a delimiter), and add padding so that it is in the same column in all lines. It can also take a range to only align any number of lines.
327
327
@@ -335,7 +335,7 @@ four = 4
335
335
five = 5[0m
336
336
```
337
337
338
-
### Spread `null` into collections or arguments
338
+
### Spread `null` into collections or arguments ([#16399](https://github.com/nushell/nushell/pull/16399))
339
339
340
340
`null` values can be used with the spread operator (`...`), behaving as if they were empty lists or records (whichever is appropriate for its place)
341
341
@@ -346,11 +346,11 @@ true[38;5;14m
346
346
true[0m
347
347
```
348
348
349
-
### `get`, `select`, `reject` can `--ignore-case` of cell-path
349
+
### `get`, `select`, `reject` can `--ignore-case` of cell-path ([#16401](https://github.com/nushell/nushell/pull/16401))
350
350
351
351
`get`, `select`, `reject` commands now have a `--ignore-case` flag, which makes the commands interpret all cell-path arguments as completely case insensitive.
`watch` command can now be used to _return a stream_ of detected events instead of calling a closure with it's information, though using a closure is still possible and existing uses won't break.
356
356
@@ -372,7 +372,7 @@ watch .
372
372
| each { md-lint $in.path }
373
373
```
374
374
375
-
### Extend nodeset output formats for `query xml`
375
+
### Extend nodeset output formats for `query xml` ([#16465](github.com/nushell/nushell/pull/16465))
376
376
377
377
`query xml` now can output additional information when it returns Nodesets:
378
378
@@ -382,7 +382,7 @@ watch .
382
382
383
383
If you're using any of the `--output-*` switches, and want `string_value` column to show up, pass `--output-string-value` explicitly. In the absence of any `--output-*` attributes, `--output-string-value` is assumed to be on.
384
384
385
-
### `--endian` flag for `into binary`
385
+
### `--endian` flag for `into binary` ([#16466](https://github.com/nushell/nushell/pull/16466))
386
386
387
387
Previously, converting values to `binary` with `into binary` could only do so in the native endianness of your platform. Using native endianness is still the default, but with the `--endian` flag, you get to choose:
388
388
@@ -411,7 +411,7 @@ Note that this only affects `int`, `float`, `filesize`, `bool` and `duration` (i
411
411
412
412
## Other changes
413
413
414
-
### `http` subcommands now keep track of redirects
414
+
### `http` subcommands now keep track of redirects ([#16078](https://github.com/nushell/nushell/pull/16078))
415
415
416
416
> TODO(release-notes): Move this subheading to Additions
417
417
@@ -434,7 +434,7 @@ This may break edge cases which relied on a lack of a `urls` column, for example
434
434
435
435
:::
436
436
437
-
### `http post` now sends body serialized as pretty json
437
+
### `http post` now sends body serialized as pretty json ([#16078](https://github.com/nushell/nushell/pull/16078))
438
438
439
439
Before, `http post` would serialize values as raw JSON. Now, the JSON will be serialized into the pretty format. Note that this increases the body size.
### `http` commands will now fail on invalid headers
467
+
### `http` commands will now fail on invalid headers ([#16078](https://github.com/nushell/nushell/pull/16078))
468
468
469
469
Before, non-UTF-8 headers would be silently ignored. Now, these will cause an error. Here's an example which uses two Nushell instances to demonstrate this.
470
470
@@ -488,7 +488,7 @@ http get --full --allow-errors http://localhost:1234
488
488
# => ╰────
489
489
```
490
490
491
-
### Improved error messages for misspelled flags
491
+
### Improved error messages for misspelled flags ([#16427](https://github.com/nushell/nushell/pull/16427))
492
492
493
493
Previously, the help text for a missing flag would list all of them, which could get verbose on a single line:
### Improved default color theme ([#16509](https://github.com/nushell/nushell/pull/16509))
525
525
526
526
We changed the default theme to use the ANSI default color (`39m`) instead of white (`37m`).
527
527
This finally makes the default theme usable in the context of light terminal color settings. On dark terminal palettes this change should have no impact.
@@ -533,7 +533,7 @@ Comparison of white vs default color on Solarized Light theme, before and after:
### Prevent `detect columns` from creating invalid records with duplicate keys
633
+
### Prevent `detect columns` from creating invalid records with duplicate keys ([#16527](https://github.com/nushell/nushell/pull/16527))
634
634
635
635
Previously `detect columns` created records (rows) with duplicate key names under some circumstances. The resulting table behaved inconsistently with different commands:
0 commit comments