<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="https://www.nushell.sh/atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
  <id>https://www.nushell.sh/</id>
  <title>Nushell</title>
  <subtitle>A new type of shell.</subtitle>
  <updated>2026-11-06T03:35:44.994Z</updated>
  <generator>@vuepress/plugin-feed</generator>
  <link rel="self" href="https://www.nushell.sh/atom.xml"/>
  <link rel="alternate" href="https://www.nushell.sh/"/>
  <contributor>
    <name>The Nu Authors</name>
  </contributor>
  <entry>
    <title type="text">This week in Nushell #376</title>
    <id>https://www.nushell.sh/blog/2026-11-06-twin0376.html</id>
    <link href="https://www.nushell.sh/blog/2026-11-06-twin0376.html"/>
    <updated>2026-11-06T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Thursday, 2026-11-05, including PRs merged Friday, 2026-10-30 through Thursday, 2026-11-05.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19424" target="_blank" rel="noopener noreferrer"><code>table --collapse</code> lines up rows and stays within <code>--width</code> (#19424)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19422" target="_blank" rel="noopener noreferrer">dc-glob follows nu-glob's rules in every command, with <code>{a,b}</code> added (#19422)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19421" target="_blank" rel="noopener noreferrer"><code>rm</code> never lets a glob match a hidden file unless asked (#19421)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19420" target="_blank" rel="noopener noreferrer">bumped calamine to 0.38.0 to clear the RustSec audit (#19420)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19415" target="_blank" rel="noopener noreferrer">fixed the nu-conformance open questions A1, P1, H1 and R1, and two <code>source</code> bugs (#19415)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19414" target="_blank" rel="noopener noreferrer"><code>math sum size</code> and the other math reducers sum a table's column (#19414)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19413" target="_blank" rel="noopener noreferrer">added <code>into datetime --formats</code> to list the formats it reads (#19413)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19412" target="_blank" rel="noopener noreferrer">updated Cargo.toml for __eh_frame section warning (#19412)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19405" target="_blank" rel="noopener noreferrer">updated ci.yml with incredibuild-macos-latest (#19405)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19404" target="_blank" rel="noopener noreferrer">passed flags through <code>%$cmd</code> dynamic builtin dispatch (#19404)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19403" target="_blank" rel="noopener noreferrer">added a status line under the prompt: errors, signatures, types and const previews as you type (#19403)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19398" target="_blank" rel="noopener noreferrer">replaced dtparse with a jiff-based date reader (#19398)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19397" target="_blank" rel="noopener noreferrer">added <code>older-than</code> and <code>newer-than</code> operators for datetimes (#19397)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19394" target="_blank" rel="noopener noreferrer">made closures that call commands faster, and <code>into datetime</code> on RFC 3339 strings (#19394)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19391" target="_blank" rel="noopener noreferrer">added <code>from dotenv</code> and <code>to dotenv</code>, and had <code>load-env</code> and <code>with-env</code> convert what they set (#19391)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19438" target="_blank" rel="noopener noreferrer">fixed(config): rejected a keybindings or menus list with an entry it can't read (#19438)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19418" target="_blank" rel="noopener noreferrer">fixed(config)!: made assigning keybindings and menus replace the list (#19418)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19417" target="_blank" rel="noopener noreferrer">chore(deps): bumped rusqlite to 0.41.1 and reedline to 4fcf4fb (#19417)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19416" target="_blank" rel="noopener noreferrer">chore(reedline): bumped reedline to 8bc5cd0 (#19416)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19401" target="_blank" rel="noopener noreferrer">chore: bumped reedline to 4a3dad3 (#19401)</a></li>
</ul>
</li>
<li>
<p>@passionworkeer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19434" target="_blank" rel="noopener noreferrer">fixed(date): preserved offset seconds and rejected malformed offsets (#19434)</a></li>
</ul>
</li>
<li>
<p>@Huang-404-Q:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19409" target="_blank" rel="noopener noreferrer">fixed(nu-term-grid): accepted a grid that is exactly as wide as the limit (#19409)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19399" target="_blank" rel="noopener noreferrer">feat: made <code>first</code> and <code>last</code> <code>const</code> (#19399)</a></li>
</ul>
</li>
<li>
<p>@qodelicious:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19390" target="_blank" rel="noopener noreferrer">fixed(use): kept the full directory name for module directories with a dot (#19390)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19389" target="_blank" rel="noopener noreferrer">fixed(update cells): returned errors from the closure instead of storing them in cells (#19389)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19430" target="_blank" rel="noopener noreferrer">build(deps): bumped mq-markdown from 0.9.2 to 0.10.0 (#19430)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19429" target="_blank" rel="noopener noreferrer">build(deps): bumped aws-config from 1.12.0 to 1.13.0 (#19429)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19427" target="_blank" rel="noopener noreferrer">build(deps): bumped brotli from 9.0.0 to 9.1.1 (#19427)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19426" target="_blank" rel="noopener noreferrer">build(deps): bumped rstest from 0.27.0 to 0.28.0 (#19426)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19425" target="_blank" rel="noopener noreferrer">build(deps): bumped taiki-e/install-action from 2.87.31 to 2.89.0 (#19425)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Thursday, 2026-11-05, including PRs merged Friday, 2026-10-30 through Thursday, 2026-11-05.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19424" target="_blank" rel="noopener noreferrer"><code>table --collapse</code> lines up rows and stays within <code>--width</code> (#19424)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19422" target="_blank" rel="noopener noreferrer">dc-glob follows nu-glob's rules in every command, with <code>{a,b}</code> added (#19422)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19421" target="_blank" rel="noopener noreferrer"><code>rm</code> never lets a glob match a hidden file unless asked (#19421)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19420" target="_blank" rel="noopener noreferrer">bumped calamine to 0.38.0 to clear the RustSec audit (#19420)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19415" target="_blank" rel="noopener noreferrer">fixed the nu-conformance open questions A1, P1, H1 and R1, and two <code>source</code> bugs (#19415)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19414" target="_blank" rel="noopener noreferrer"><code>math sum size</code> and the other math reducers sum a table's column (#19414)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19413" target="_blank" rel="noopener noreferrer">added <code>into datetime --formats</code> to list the formats it reads (#19413)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19412" target="_blank" rel="noopener noreferrer">updated Cargo.toml for __eh_frame section warning (#19412)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19405" target="_blank" rel="noopener noreferrer">updated ci.yml with incredibuild-macos-latest (#19405)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19404" target="_blank" rel="noopener noreferrer">passed flags through <code>%$cmd</code> dynamic builtin dispatch (#19404)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19403" target="_blank" rel="noopener noreferrer">added a status line under the prompt: errors, signatures, types and const previews as you type (#19403)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19398" target="_blank" rel="noopener noreferrer">replaced dtparse with a jiff-based date reader (#19398)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19397" target="_blank" rel="noopener noreferrer">added <code>older-than</code> and <code>newer-than</code> operators for datetimes (#19397)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19394" target="_blank" rel="noopener noreferrer">made closures that call commands faster, and <code>into datetime</code> on RFC 3339 strings (#19394)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19391" target="_blank" rel="noopener noreferrer">added <code>from dotenv</code> and <code>to dotenv</code>, and had <code>load-env</code> and <code>with-env</code> convert what they set (#19391)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19438" target="_blank" rel="noopener noreferrer">fixed(config): rejected a keybindings or menus list with an entry it can't read (#19438)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19418" target="_blank" rel="noopener noreferrer">fixed(config)!: made assigning keybindings and menus replace the list (#19418)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19417" target="_blank" rel="noopener noreferrer">chore(deps): bumped rusqlite to 0.41.1 and reedline to 4fcf4fb (#19417)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19416" target="_blank" rel="noopener noreferrer">chore(reedline): bumped reedline to 8bc5cd0 (#19416)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19401" target="_blank" rel="noopener noreferrer">chore: bumped reedline to 4a3dad3 (#19401)</a></li>
</ul>
</li>
<li>
<p>@passionworkeer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19434" target="_blank" rel="noopener noreferrer">fixed(date): preserved offset seconds and rejected malformed offsets (#19434)</a></li>
</ul>
</li>
<li>
<p>@Huang-404-Q:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19409" target="_blank" rel="noopener noreferrer">fixed(nu-term-grid): accepted a grid that is exactly as wide as the limit (#19409)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19399" target="_blank" rel="noopener noreferrer">feat: made <code>first</code> and <code>last</code> <code>const</code> (#19399)</a></li>
</ul>
</li>
<li>
<p>@qodelicious:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19390" target="_blank" rel="noopener noreferrer">fixed(use): kept the full directory name for module directories with a dot (#19390)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19389" target="_blank" rel="noopener noreferrer">fixed(update cells): returned errors from the closure instead of storing them in cells (#19389)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19430" target="_blank" rel="noopener noreferrer">build(deps): bumped mq-markdown from 0.9.2 to 0.10.0 (#19430)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19429" target="_blank" rel="noopener noreferrer">build(deps): bumped aws-config from 1.12.0 to 1.13.0 (#19429)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19427" target="_blank" rel="noopener noreferrer">build(deps): bumped brotli from 9.0.0 to 9.1.1 (#19427)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19426" target="_blank" rel="noopener noreferrer">build(deps): bumped rstest from 0.27.0 to 0.28.0 (#19426)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19425" target="_blank" rel="noopener noreferrer">build(deps): bumped taiki-e/install-action from 2.87.31 to 2.89.0 (#19425)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2282" target="_blank" rel="noopener noreferrer">TWiN 375 (#2282)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2281" target="_blank" rel="noopener noreferrer">TWiNs (#2281)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2279" target="_blank" rel="noopener noreferrer">added status line docs (#2279)</a></li>
</ul>
</li>
<li>
<p>@passionworkeer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2278" target="_blank" rel="noopener noreferrer">docs(zh-CN): completed book translations and added filter reference (#2278)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2276" target="_blank" rel="noopener noreferrer">docs(zh-CN): updated book translations, examples, and links (#2276)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2277" target="_blank" rel="noopener noreferrer">bumped seroval from 1.6.9 to 1.6.12 (#2277)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2275" target="_blank" rel="noopener noreferrer">bumped undici from 7.30.0 to 7.30.1 (#2275)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1294" target="_blank" rel="noopener noreferrer">fixed(menu): let a later menu replace one of the same name (#1294)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1293" target="_blank" rel="noopener noreferrer">chore(deps): bumped rusqlite to 0.41.1 (#1293)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1292" target="_blank" rel="noopener noreferrer">fixed(editor): resolved <code>*RightEnd</code> word moves under the active caret (#1292)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1291" target="_blank" rel="noopener noreferrer">docs: fixed the broken intra-doc links and built docs in CI (#1291)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1290" target="_blank" rel="noopener noreferrer">feat(engine)!: handed the buffer back with <code>Signal::CtrlC</code> (#1290)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1289" target="_blank" rel="noopener noreferrer">docs(history): said how to keep no history (#1289)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1288" target="_blank" rel="noopener noreferrer">fixed(painter): put the multiline indicator on each line of a hint (#1288)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1287" target="_blank" rel="noopener noreferrer">test(history): ran the backend tests against every compiled-in backend (#1287)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1286" target="_blank" rel="noopener noreferrer">fixed(history): wrote unlocked when the filesystem cannot lock the file (#1286)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1281" target="_blank" rel="noopener noreferrer">feat(history): jumped to the oldest entry and back to the draft with <code>PageUp</code>/<code>PageDown</code> (#1281)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1280" target="_blank" rel="noopener noreferrer">feat(edit): added <code>EditCommand::CapitalizeWord</code> (#1280)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1279" target="_blank" rel="noopener noreferrer">feat(api): exported <code>EventStatus</code> for out-of-tree edit modes (#1279)</a></li>
</ul>
</li>
<li>
<p>@Kiddo4993:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1285" target="_blank" rel="noopener noreferrer">fixed(engine): reported Esc as inapplicable when there is nothing to cancel (#1285)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1268" target="_blank" rel="noopener noreferrer">added a status line below the buffer (#1268)</a></li>
</ul>
</li>
<li>
<p>@kokhlo:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1266" target="_blank" rel="noopener noreferrer">fixed(menu): requested the completion total and page in one call (#1266)</a></li>
</ul>
</li>
<li>
<p>@ymcx:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1260" target="_blank" rel="noopener noreferrer">implemented menu selection with a mouse (#1260)</a></li>
</ul>
</li>
<li>
<p>@pickx:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1258" target="_blank" rel="noopener noreferrer">fixed(buffer editor): decoupled editor from command (#1258)</a></li>
</ul>
</li>
<li>
<p>@stuartcarnie:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1253" target="_blank" rel="noopener noreferrer">feat(menu): paged completion menus with PageUp/PageDown (#1253)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@tonythethompson:</p>
<ul>
<li>
<p><a href="https://github.com/nushell/nu_scripts/pull/1303" target="_blank" rel="noopener noreferrer">docs(custom-completions): added layout and pinning guidance for packagers (#1303)</a></p>
<div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span></span></span></code></pre>
</div></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-11-06T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #375</title>
    <id>https://www.nushell.sh/blog/2026-10-30-twin0375.html</id>
    <link href="https://www.nushell.sh/blog/2026-10-30-twin0375.html"/>
    <updated>2026-10-30T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Wednesday, 2026-11-04, including PRs merged Friday, 2026-10-23 through Thursday, 2026-10-29.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19381" target="_blank" rel="noopener noreferrer">Bumped libz-sys to 1.1.31 to clear RUSTSEC-2026-0418 (#19381)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19375" target="_blank" rel="noopener noreferrer">Made the TUI draw on the terminal's own background by default (#19375)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19373" target="_blank" rel="noopener noreferrer">Bumped scraper to 0.29.0, lru to 0.19.0, and calamine to 0.37.0 (#19373)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19359" target="_blank" rel="noopener noreferrer">Bumped <code>webpage</code> and <code>zstd-sys</code> and ignored the other zstd advisories to clear the RustSec audit (#19359)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19351" target="_blank" rel="noopener noreferrer">Routed commands found by id through a single IR call path (AST migration phase 3) (#19351)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19349" target="_blank" rel="noopener noreferrer">Fixed <code>try</code> hanging under pipefail and kept an external's stderr through <code>finally</code> and <code>o&gt;</code> (#19349)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19344" target="_blank" rel="noopener noreferrer">Prevented Tab's partial completion from dropping suggestions that replace a different span (#19344)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19340" target="_blank" rel="noopener noreferrer">Shortened table escape sequences and added a new <code>ansi opt</code> command (#19340)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19331" target="_blank" rel="noopener noreferrer">Removed a file that was accidentally committed (#19331)</a></li>
</ul>
</li>
<li>
<p>@patatoish:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19363" target="_blank" rel="noopener noreferrer">Fixed inverted error types in <code>into int</code> and <code>into float</code> (#19363)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19362" target="_blank" rel="noopener noreferrer">Rejected duplicate column names in <code>split column</code> (#19362)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19361" target="_blank" rel="noopener noreferrer">Returned an error for invalid alignment in <code>fill</code> (#19361)</a></li>
</ul>
</li>
<li>
<p>@mirsella:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19358" target="_blank" rel="noopener noreferrer">Fixed OSC 7 directory URL escaping (#19358)</a></li>
</ul>
</li>
<li>
<p>@qodelicious:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19356" target="_blank" rel="noopener noreferrer">Kept row order in <code>to md</code> when rows have different columns (#19356)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19355" target="_blank" rel="noopener noreferrer">Made <code>dirs drop</code> a no-op when only one directory is left (#19355)</a></li>
</ul>
</li>
<li>
<p>@carlos-mercado:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19354" target="_blank" rel="noopener noreferrer">Added record, table, and list-of-strings examples to <code>str substring</code> (#19354)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19350" target="_blank" rel="noopener noreferrer">Documented <code>$env.cmd_duration_ms</code> and how to check for startup with it (#19350)</a></li>
</ul>
</li>
<li>
<p>@passionworkeer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19348" target="_blank" rel="noopener noreferrer">Fixed <code>dc-glob</code> traversal of explicit relative paths (#19348)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19343" target="_blank" rel="noopener noreferrer">Bumped ctutils, tokio, and clipboard-win to clear the RustSec audit (#19343)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19342" target="_blank" rel="noopener noreferrer">Bumped reedline to c8d81b2 (#19342)</a></li>
</ul>
</li>
<li>
<p>@bercedev:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19339" target="_blank" rel="noopener noreferrer">Drained a piped stderr before collecting an external in <code>try</code> (#19339)</a></li>
</ul>
</li>
<li>
<p>@akasakariko:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19337" target="_blank" rel="noopener noreferrer">Reset stale REPL interrupts before running a new command (#19337)</a></li>
</ul>
</li>
<li>
<p>@armadavalor:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19333" target="_blank" rel="noopener noreferrer">Stopped rewriting path separators for external args that merely contain <code>...</code> (#19333)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19332" target="_blank" rel="noopener noreferrer">Resolved Windows drive-relative paths like <code>d:</code> the way <code>cmd</code> does in <code>cd</code> (#19332)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19370" target="_blank" rel="noopener noreferrer">Bumped fancy-regex from 0.19.0 to 0.20.0 (#19370)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19368" target="_blank" rel="noopener noreferrer">Bumped uuid from 1.28.0 to 1.29.0 (#19368)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19367" target="_blank" rel="noopener noreferrer">Bumped Swatinem/rust-cache from 2.9.2 to 2.9.3 (#19367)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19366" target="_blank" rel="noopener noreferrer">Bumped actions/setup-python from 7.0.0 to 7.1.0 (#19366)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19365" target="_blank" rel="noopener noreferrer">Bumped taiki-e/install-action from 2.87.29 to 2.87.31 (#19365)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19364" target="_blank" rel="noopener noreferrer">Bumped hustcer/setup-nu from 3.28 to 3.29 (#19364)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Wednesday, 2026-11-04, including PRs merged Friday, 2026-10-23 through Thursday, 2026-10-29.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19381" target="_blank" rel="noopener noreferrer">Bumped libz-sys to 1.1.31 to clear RUSTSEC-2026-0418 (#19381)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19375" target="_blank" rel="noopener noreferrer">Made the TUI draw on the terminal's own background by default (#19375)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19373" target="_blank" rel="noopener noreferrer">Bumped scraper to 0.29.0, lru to 0.19.0, and calamine to 0.37.0 (#19373)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19359" target="_blank" rel="noopener noreferrer">Bumped <code>webpage</code> and <code>zstd-sys</code> and ignored the other zstd advisories to clear the RustSec audit (#19359)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19351" target="_blank" rel="noopener noreferrer">Routed commands found by id through a single IR call path (AST migration phase 3) (#19351)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19349" target="_blank" rel="noopener noreferrer">Fixed <code>try</code> hanging under pipefail and kept an external's stderr through <code>finally</code> and <code>o&gt;</code> (#19349)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19344" target="_blank" rel="noopener noreferrer">Prevented Tab's partial completion from dropping suggestions that replace a different span (#19344)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19340" target="_blank" rel="noopener noreferrer">Shortened table escape sequences and added a new <code>ansi opt</code> command (#19340)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19331" target="_blank" rel="noopener noreferrer">Removed a file that was accidentally committed (#19331)</a></li>
</ul>
</li>
<li>
<p>@patatoish:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19363" target="_blank" rel="noopener noreferrer">Fixed inverted error types in <code>into int</code> and <code>into float</code> (#19363)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19362" target="_blank" rel="noopener noreferrer">Rejected duplicate column names in <code>split column</code> (#19362)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19361" target="_blank" rel="noopener noreferrer">Returned an error for invalid alignment in <code>fill</code> (#19361)</a></li>
</ul>
</li>
<li>
<p>@mirsella:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19358" target="_blank" rel="noopener noreferrer">Fixed OSC 7 directory URL escaping (#19358)</a></li>
</ul>
</li>
<li>
<p>@qodelicious:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19356" target="_blank" rel="noopener noreferrer">Kept row order in <code>to md</code> when rows have different columns (#19356)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19355" target="_blank" rel="noopener noreferrer">Made <code>dirs drop</code> a no-op when only one directory is left (#19355)</a></li>
</ul>
</li>
<li>
<p>@carlos-mercado:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19354" target="_blank" rel="noopener noreferrer">Added record, table, and list-of-strings examples to <code>str substring</code> (#19354)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19350" target="_blank" rel="noopener noreferrer">Documented <code>$env.cmd_duration_ms</code> and how to check for startup with it (#19350)</a></li>
</ul>
</li>
<li>
<p>@passionworkeer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19348" target="_blank" rel="noopener noreferrer">Fixed <code>dc-glob</code> traversal of explicit relative paths (#19348)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19343" target="_blank" rel="noopener noreferrer">Bumped ctutils, tokio, and clipboard-win to clear the RustSec audit (#19343)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19342" target="_blank" rel="noopener noreferrer">Bumped reedline to c8d81b2 (#19342)</a></li>
</ul>
</li>
<li>
<p>@bercedev:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19339" target="_blank" rel="noopener noreferrer">Drained a piped stderr before collecting an external in <code>try</code> (#19339)</a></li>
</ul>
</li>
<li>
<p>@akasakariko:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19337" target="_blank" rel="noopener noreferrer">Reset stale REPL interrupts before running a new command (#19337)</a></li>
</ul>
</li>
<li>
<p>@armadavalor:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19333" target="_blank" rel="noopener noreferrer">Stopped rewriting path separators for external args that merely contain <code>...</code> (#19333)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19332" target="_blank" rel="noopener noreferrer">Resolved Windows drive-relative paths like <code>d:</code> the way <code>cmd</code> does in <code>cd</code> (#19332)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19370" target="_blank" rel="noopener noreferrer">Bumped fancy-regex from 0.19.0 to 0.20.0 (#19370)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19368" target="_blank" rel="noopener noreferrer">Bumped uuid from 1.28.0 to 1.29.0 (#19368)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19367" target="_blank" rel="noopener noreferrer">Bumped Swatinem/rust-cache from 2.9.2 to 2.9.3 (#19367)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19366" target="_blank" rel="noopener noreferrer">Bumped actions/setup-python from 7.0.0 to 7.1.0 (#19366)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19365" target="_blank" rel="noopener noreferrer">Bumped taiki-e/install-action from 2.87.29 to 2.87.31 (#19365)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19364" target="_blank" rel="noopener noreferrer">Bumped hustcer/setup-nu from 3.28 to 3.29 (#19364)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@passionworkeer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2274" target="_blank" rel="noopener noreferrer">Added the missing zh-CN book chapters for TUI, MCP, debugging, and coming from PowerShell (#2274)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2273" target="_blank" rel="noopener noreferrer">Added docs about <code>@structured</code> (#2273)</a></li>
</ul>
</li>
<li>
<p>@taylormhall:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2272" target="_blank" rel="noopener noreferrer">Added Ghostty to the default shell terminal table (#2272)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2271" target="_blank" rel="noopener noreferrer">Updated the lockfile to use registry.npmjs.org for all packages (#2271)</a></li>
</ul>
</li>
<li>
<p>@qodelicious:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2270" target="_blank" rel="noopener noreferrer">Updated the Japanese Bash comparison table to current commands (#2270)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1267" target="_blank" rel="noopener noreferrer">Restored the terminal mode after the buffer editor exits (#1267)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1257" target="_blank" rel="noopener noreferrer">Ungated the printer and commit messages in one frame (#1257)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1241" target="_blank" rel="noopener noreferrer">Showed control characters instead of sending them (#1241)</a></li>
</ul>
</li>
<li>
<p>@Don-Yin:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1264" target="_blank" rel="noopener noreferrer">Bound Shift+Backspace in insert modes (#1264)</a></li>
</ul>
</li>
<li>
<p>@Nacl-HCl:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1263" target="_blank" rel="noopener noreferrer">Treated Ctrl+J as a line ending when draining the input batch (#1263)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1261" target="_blank" rel="noopener noreferrer">Took the partial completion across all suggestion spans in the menu (#1261)</a></li>
</ul>
</li>
<li>
<p>@devtechedge:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1256" target="_blank" rel="noopener noreferrer">Repainted whenever the vi mode changes (#1256)</a></li>
</ul>
</li>
<li>
<p>@eitsupi:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1244" target="_blank" rel="noopener noreferrer">Let hinters and highlighters handle hints before auto-pair closers (#1244)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>@qodelicious:
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1302" target="_blank" rel="noopener noreferrer">Updated <code>shell_space</code> to use std dirs now that <code>shells</code> is gone (#1302)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1301" target="_blank" rel="noopener noreferrer">Fixed dice and the error helper in <code>random-list</code> for current Nushell (#1301)</a></li>
</ul>
</li>
</ul>
<h2>VSCode Extension</h2>
<ul>
<li>@rvhelden:
<ul>
<li><a href="https://github.com/nushell/vscode-nushell-lang/pull/241" target="_blank" rel="noopener noreferrer">Integrated the debugger (#241)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-10-30T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #374</title>
    <id>https://www.nushell.sh/blog/2026-10-23-twin0374.html</id>
    <link href="https://www.nushell.sh/blog/2026-10-23-twin0374.html"/>
    <updated>2026-10-23T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Wednesday, 2026-11-04, including PRs merged Friday, 2026-10-16 through Thursday, 2026-10-22.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19317" target="_blank" rel="noopener noreferrer">fixed polars test breakages (#19317)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19308" target="_blank" rel="noopener noreferrer">bumped webpki crates to clear the RustSec audit (#19308)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19303" target="_blank" rel="noopener noreferrer">fixed(table): shrunk the widest columns first and honored width priorities everywhere (#19303)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19294" target="_blank" rel="noopener noreferrer">fixed(unlet): hid a constant's name instead of rejecting it (#19294)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19274" target="_blank" rel="noopener noreferrer">tested(run): dropped the shared short flag that #19271 made a parse error (#19274)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19273" target="_blank" rel="noopener noreferrer">ignored the <code>zip</code> extraction advisories in <code>cargo audit</code>, since calamine never extracts (#19273)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19272" target="_blank" rel="noopener noreferrer">fixed(run): rejected script arguments that <code>main</code> doesn't accept (#19272)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19271" target="_blank" rel="noopener noreferrer">fixed the bugs found by the nu-conformance open questions (#19271)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19270" target="_blank" rel="noopener noreferrer">fixed(mcp): didn't offer hidden commands, and left out the arguments an alias already passes (#19270)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19268" target="_blank" rel="noopener noreferrer">fixed(cli): corrected the <code>--mcp-host</code> help text and example (#19268)</a></li>
</ul>
</li>
<li>
<p>@rajaryan0x1:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19299" target="_blank" rel="noopener noreferrer">fixed(detect type): preserved whitespace-padded strings (#19299)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19298" target="_blank" rel="noopener noreferrer">fixed(<code>version check</code>): propagated error and used github token (#19298)</a></li>
</ul>
</li>
<li>
<p>@manoj-1407:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19296" target="_blank" rel="noopener noreferrer">fixed <code>table --abbreviated</code> crash when the row count is too large to allocate (#19296)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19295" target="_blank" rel="noopener noreferrer">fixed <code>last</code> crash when the count is too large to allocate (#19295)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19288" target="_blank" rel="noopener noreferrer">fixed <code>window</code> crash when the window size is too large to allocate (#19288)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19286" target="_blank" rel="noopener noreferrer">fixed <code>chunks</code> crash when the chunk size is too large to allocate (#19286)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19285" target="_blank" rel="noopener noreferrer">fixed <code>roll</code> panic on empty lists and records (#19285)</a></li>
</ul>
</li>
<li>
<p>@ymcx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19292" target="_blank" rel="noopener noreferrer">disallowed setting a negative indentation level in to xml (#19292)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19290" target="_blank" rel="noopener noreferrer">chore: bumped reedline to 39db5e3 (#19290)</a></li>
</ul>
</li>
<li>
<p>@qodelicious:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19287" target="_blank" rel="noopener noreferrer">toned down the <code>tutor echo</code> intro (#19287)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19284" target="_blank" rel="noopener noreferrer">fixed(into string): explained in help that binary input needs <code>decode</code> (#19284)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19282" target="_blank" rel="noopener noreferrer">fixed(cli): showed the script name instead of <code>main</code> in errors about a script's arguments (#19282)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19281" target="_blank" rel="noopener noreferrer">fixed(tee): kept the last help example short (#19281)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19280" target="_blank" rel="noopener noreferrer">fixed(run-external): explained a missing shebang interpreter instead of showing an internal error (#19280)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19279" target="_blank" rel="noopener noreferrer">fixed(hide): described the required argument as the name of what to hide (#19279)</a></li>
</ul>
</li>
<li>
<p>@intertermux-code:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19283" target="_blank" rel="noopener noreferrer">fixed(du): counted a hard-linked file once, not once per link (#19283)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19307" target="_blank" rel="noopener noreferrer">build(deps): bumped arboard from 3.6.1 to 3.7.0 (#19307)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19306" target="_blank" rel="noopener noreferrer">build(deps): bumped serde-saphyr from 1.3.0 to 2.0.0 (#19306)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19305" target="_blank" rel="noopener noreferrer">build(deps): bumped tango-bench from 0.8.0 to 0.9.0 (#19305)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19304" target="_blank" rel="noopener noreferrer">build(deps): bumped taiki-e/install-action from 2.87.27 to 2.87.29 (#19304)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Wednesday, 2026-11-04, including PRs merged Friday, 2026-10-16 through Thursday, 2026-10-22.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19317" target="_blank" rel="noopener noreferrer">fixed polars test breakages (#19317)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19308" target="_blank" rel="noopener noreferrer">bumped webpki crates to clear the RustSec audit (#19308)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19303" target="_blank" rel="noopener noreferrer">fixed(table): shrunk the widest columns first and honored width priorities everywhere (#19303)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19294" target="_blank" rel="noopener noreferrer">fixed(unlet): hid a constant's name instead of rejecting it (#19294)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19274" target="_blank" rel="noopener noreferrer">tested(run): dropped the shared short flag that #19271 made a parse error (#19274)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19273" target="_blank" rel="noopener noreferrer">ignored the <code>zip</code> extraction advisories in <code>cargo audit</code>, since calamine never extracts (#19273)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19272" target="_blank" rel="noopener noreferrer">fixed(run): rejected script arguments that <code>main</code> doesn't accept (#19272)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19271" target="_blank" rel="noopener noreferrer">fixed the bugs found by the nu-conformance open questions (#19271)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19270" target="_blank" rel="noopener noreferrer">fixed(mcp): didn't offer hidden commands, and left out the arguments an alias already passes (#19270)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19268" target="_blank" rel="noopener noreferrer">fixed(cli): corrected the <code>--mcp-host</code> help text and example (#19268)</a></li>
</ul>
</li>
<li>
<p>@rajaryan0x1:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19299" target="_blank" rel="noopener noreferrer">fixed(detect type): preserved whitespace-padded strings (#19299)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19298" target="_blank" rel="noopener noreferrer">fixed(<code>version check</code>): propagated error and used github token (#19298)</a></li>
</ul>
</li>
<li>
<p>@manoj-1407:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19296" target="_blank" rel="noopener noreferrer">fixed <code>table --abbreviated</code> crash when the row count is too large to allocate (#19296)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19295" target="_blank" rel="noopener noreferrer">fixed <code>last</code> crash when the count is too large to allocate (#19295)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19288" target="_blank" rel="noopener noreferrer">fixed <code>window</code> crash when the window size is too large to allocate (#19288)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19286" target="_blank" rel="noopener noreferrer">fixed <code>chunks</code> crash when the chunk size is too large to allocate (#19286)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19285" target="_blank" rel="noopener noreferrer">fixed <code>roll</code> panic on empty lists and records (#19285)</a></li>
</ul>
</li>
<li>
<p>@ymcx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19292" target="_blank" rel="noopener noreferrer">disallowed setting a negative indentation level in to xml (#19292)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19290" target="_blank" rel="noopener noreferrer">chore: bumped reedline to 39db5e3 (#19290)</a></li>
</ul>
</li>
<li>
<p>@qodelicious:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19287" target="_blank" rel="noopener noreferrer">toned down the <code>tutor echo</code> intro (#19287)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19284" target="_blank" rel="noopener noreferrer">fixed(into string): explained in help that binary input needs <code>decode</code> (#19284)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19282" target="_blank" rel="noopener noreferrer">fixed(cli): showed the script name instead of <code>main</code> in errors about a script's arguments (#19282)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19281" target="_blank" rel="noopener noreferrer">fixed(tee): kept the last help example short (#19281)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19280" target="_blank" rel="noopener noreferrer">fixed(run-external): explained a missing shebang interpreter instead of showing an internal error (#19280)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19279" target="_blank" rel="noopener noreferrer">fixed(hide): described the required argument as the name of what to hide (#19279)</a></li>
</ul>
</li>
<li>
<p>@intertermux-code:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19283" target="_blank" rel="noopener noreferrer">fixed(du): counted a hard-linked file once, not once per link (#19283)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19307" target="_blank" rel="noopener noreferrer">build(deps): bumped arboard from 3.6.1 to 3.7.0 (#19307)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19306" target="_blank" rel="noopener noreferrer">build(deps): bumped serde-saphyr from 1.3.0 to 2.0.0 (#19306)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19305" target="_blank" rel="noopener noreferrer">build(deps): bumped tango-bench from 0.8.0 to 0.9.0 (#19305)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19304" target="_blank" rel="noopener noreferrer">build(deps): bumped taiki-e/install-action from 2.87.27 to 2.87.29 (#19304)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1254" target="_blank" rel="noopener noreferrer">fixed large completion menus and synchronized repainting (#1254)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1249" target="_blank" rel="noopener noreferrer">tested(painter): asserted on a vt100 screen instead of emitted bytes (#1249)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1248" target="_blank" rel="noopener noreferrer">feat(history)!: dropped chrono from the public API with a millisecond <code>HistoryTimestamp</code> (#1248)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1247" target="_blank" rel="noopener noreferrer">chore: added .claude to gitignore (#1247)</a></li>
</ul>
</li>
<li>
<p>@ppergame:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1243" target="_blank" rel="noopener noreferrer">fixed(painter): printed external messages from the prompt's start row (#1243)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@qodelicious:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2267" target="_blank" rel="noopener noreferrer">used 0-based split column names in the translated books (#2267)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2266" target="_blank" rel="noopener noreferrer">fixed outdated nu_scripts links in the German book (#2266)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2265" target="_blank" rel="noopener noreferrer">documented short-circuit evaluation of and/or on the Boolean page (#2265)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2263" target="_blank" rel="noopener noreferrer">updated <code>run</code> docs (#2263)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2262" target="_blank" rel="noopener noreferrer">updated since 0.116.0 + mcp + dap + new commands (#2262)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2269" target="_blank" rel="noopener noreferrer">bumped vite from 8.1.3 to 8.3.5 (#2269)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2268" target="_blank" rel="noopener noreferrer">bumped markdown-it from 14.3.2 to 14.3.3 (#2268)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2261" target="_blank" rel="noopener noreferrer">bumped seroval and solid-js (#2261)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2260" target="_blank" rel="noopener noreferrer">bumped @vue/server-renderer and vue (#2260)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2259" target="_blank" rel="noopener noreferrer">bumped source-map-js from 1.2.1 to 1.2.2 (#2259)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2255" target="_blank" rel="noopener noreferrer">bumped markdown-it from 14.3.0 to 14.3.2 (#2255)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@qodelicious:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1300" target="_blank" rel="noopener noreferrer">dynamic-load: check overlay names now that overlay list returns a table (#1300)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1299" target="_blank" rel="noopener noreferrer">jalon-git: fixed the prompt on current nushell (#1299)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1295" target="_blank" rel="noopener noreferrer">fixed completions still using 1-based split column names (#1295)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1294" target="_blank" rel="noopener noreferrer">fixed modules still using 1-based split column names (#1294)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1293" target="_blank" rel="noopener noreferrer">cargo completions: made --timings a switch (#1293)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1292" target="_blank" rel="noopener noreferrer">zoxide-menu: kept the full score when parsing zoxide output (#1292)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1291" target="_blank" rel="noopener noreferrer">fixed ssh completions for Include lines with comments or ~ paths (#1291)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1290" target="_blank" rel="noopener noreferrer">avoided listing git subcommands twice in completions (#1290)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1289" target="_blank" rel="noopener noreferrer">custom-menus: used <code>commandline edit</code> in the fuzzy history menu (#1289)</a></li>
</ul>
</li>
<li>
<p>@DavSanchez:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1298" target="_blank" rel="noopener noreferrer">added remaining git abbreviations from oh-my-zsh and fish plugin-git (#1298)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1297" target="_blank" rel="noopener noreferrer">fixed gcsm alias passing the commit message as a path (#1297)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1296" target="_blank" rel="noopener noreferrer">allowed merging abbreviations that the user already defined (#1296)</a></li>
</ul>
</li>
<li>
<p>@0x4D5352:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1288" target="_blank" rel="noopener noreferrer">fixed claude completion for optional-valued flags (#1288)</a></li>
</ul>
</li>
<li>
<p>@IanHollow:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1287" target="_blank" rel="noopener noreferrer">fixed pytest completion list separators (#1287)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1286" target="_blank" rel="noopener noreferrer">fixed Git completion filenames, remotes, and push options (#1286)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/249" target="_blank" rel="noopener noreferrer">bumped to 0.1.6, added changelog (#249)</a></li>
</ul>
</li>
<li>
<p>@jadhavgaurav:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/248" target="_blank" rel="noopener noreferrer">treated lists with non-simple items as complex when inlining a block (#248)</a></li>
</ul>
</li>
<li>
<p>@mkatychev:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/247" target="_blank" rel="noopener noreferrer">ci(release): added dist release to nufmt (#247)</a></li>
</ul>
</li>
<li>
<p>@Sha1rholder:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/246" target="_blank" rel="noopener noreferrer">fixed toolkit clippy and update-nushell-version; made ShellCheck happy (#246)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-10-23T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #373</title>
    <id>https://www.nushell.sh/blog/2026-10-16-twin0373.html</id>
    <link href="https://www.nushell.sh/blog/2026-10-16-twin0373.html"/>
    <updated>2026-10-16T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Sunday, 2026-10-25, including PRs merged Friday, 2026-10-09 through Thursday, 2026-10-15.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@draconacht</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19257" target="_blank" rel="noopener noreferrer">updated eml-parser version to 0.1.6 (#19257)</a></li>
</ul>
</li>
<li>
<p>@fdncred</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19249" target="_blank" rel="noopener noreferrer">Bumped rustls to 0.23.46 to clear the RustSec audit (#19249)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19236" target="_blank" rel="noopener noreferrer">Faster startup: chained fixups on Apple silicon, a cheaper banner, and async prompt pushes that survive (#19236)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19235" target="_blank" rel="noopener noreferrer">Bumped locked dependencies to clear the RustSec audit (#19235)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19233" target="_blank" rel="noopener noreferrer">Fixed(gstat): stop wrapping counts and reporting unreadable status as clean, fill <code>ignored</code> and <code>wt_renamed</code>, link libgit2 statically (#19233)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19229" target="_blank" rel="noopener noreferrer">Fixed: count closure calls toward <code>recursion_limit</code> so infinite closure recursion errors instead of crashing (#19229)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19220" target="_blank" rel="noopener noreferrer">Fixed(tui): error when a closure has no table, tree, or select to follow (#19220)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19219" target="_blank" rel="noopener noreferrer">Fixed(join): error when a table has no rows with the join column (#19219)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19212" target="_blank" rel="noopener noreferrer">Fixed(table): stop <code>table --expand</code> hanging when a nested table is wider than its column (#19212)</a></li>
</ul>
</li>
<li>
<p>@mvanhorn</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19234" target="_blank" rel="noopener noreferrer">Fixed: clarify empty-content access diagnostics (#19234)</a></li>
</ul>
</li>
<li>
<p>@hustcer</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19232" target="_blank" rel="noopener noreferrer">Fixed(ci): preserve warnings in nightly release builds (#19232)</a></li>
</ul>
</li>
<li>
<p>@bfren</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19228" target="_blank" rel="noopener noreferrer">Optimized module reloading check (#19228)</a></li>
</ul>
</li>
<li>
<p>@eugenesvk</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19224" target="_blank" rel="noopener noreferrer">Used builtin command sigil to avoid bugs when user aliases shadow builtin (#19224)</a></li>
</ul>
</li>
<li>
<p>@Kissaki</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19218" target="_blank" rel="noopener noreferrer">Fixed conditional tutor text typos (#19218)</a></li>
</ul>
</li>
<li>
<p>@skyfireitdiy</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19213" target="_blank" rel="noopener noreferrer">Fixed: support IPv6 zone IDs in http commands (#19213)</a></li>
</ul>
</li>
<li>
<p>@sidney3</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19210" target="_blank" rel="noopener noreferrer">Strict clocktime regex (#19210)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19208" target="_blank" rel="noopener noreferrer">Added anti join (#19208)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19204" target="_blank" rel="noopener noreferrer">Detected duration type (#19204)</a></li>
</ul>
</li>
<li>
<p>@itsF4LCON</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19205" target="_blank" rel="noopener noreferrer"><code>open</code>/<code>save</code>: gave a clear error suggesting <code>def</code> when the <code>from</code>/<code>to</code> converter is an alias (#19205)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19202" target="_blank" rel="noopener noreferrer">chore: bumped reedline to d704744 (#19202)</a></li>
</ul>
</li>
<li>
<p>@ymcx</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19201" target="_blank" rel="noopener noreferrer">Don't let lifted columns overwrite normal columns while flattening (#19201)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19196" target="_blank" rel="noopener noreferrer">Don't allow duplicate column names in Rename (#19196)</a></li>
</ul>
</li>
<li>
<p>@SyedYousufFaizan</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19194" target="_blank" rel="noopener noreferrer">Fixed(LSP) lsp crash on symbol requests for unopened or closed documents (#19194)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19246" target="_blank" rel="noopener noreferrer">build(deps): bumped crate-ci/typos from 1.50.3 to 1.51.1 (#19246)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19245" target="_blank" rel="noopener noreferrer">build(deps): bumped uuid from 1.27.0 to 1.28.0 (#19245)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19244" target="_blank" rel="noopener noreferrer">build(deps): bumped vedantmgoyal2009/winget-releaser from 4ffc7888bffd451b357355dc214d43bb9f23917e to b7370d4d152efdce803a26cc6ca9eee58cb2ad54 (#19244)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19243" target="_blank" rel="noopener noreferrer">build(deps): bumped taiki-e/install-action from 2.87.24 to 2.87.27 (#19243)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19242" target="_blank" rel="noopener noreferrer">build(deps): bumped actions/upload-artifact from 7.0.1 to 7.0.2 (#19242)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19241" target="_blank" rel="noopener noreferrer">build(deps): bumped lean_string from 0.7.0 to 0.8.0 (#19241)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19240" target="_blank" rel="noopener noreferrer">build(deps): bumped unicase from 2.9.0 to 2.10.0 (#19240)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Sunday, 2026-10-25, including PRs merged Friday, 2026-10-09 through Thursday, 2026-10-15.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@draconacht</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19257" target="_blank" rel="noopener noreferrer">updated eml-parser version to 0.1.6 (#19257)</a></li>
</ul>
</li>
<li>
<p>@fdncred</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19249" target="_blank" rel="noopener noreferrer">Bumped rustls to 0.23.46 to clear the RustSec audit (#19249)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19236" target="_blank" rel="noopener noreferrer">Faster startup: chained fixups on Apple silicon, a cheaper banner, and async prompt pushes that survive (#19236)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19235" target="_blank" rel="noopener noreferrer">Bumped locked dependencies to clear the RustSec audit (#19235)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19233" target="_blank" rel="noopener noreferrer">Fixed(gstat): stop wrapping counts and reporting unreadable status as clean, fill <code>ignored</code> and <code>wt_renamed</code>, link libgit2 statically (#19233)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19229" target="_blank" rel="noopener noreferrer">Fixed: count closure calls toward <code>recursion_limit</code> so infinite closure recursion errors instead of crashing (#19229)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19220" target="_blank" rel="noopener noreferrer">Fixed(tui): error when a closure has no table, tree, or select to follow (#19220)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19219" target="_blank" rel="noopener noreferrer">Fixed(join): error when a table has no rows with the join column (#19219)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19212" target="_blank" rel="noopener noreferrer">Fixed(table): stop <code>table --expand</code> hanging when a nested table is wider than its column (#19212)</a></li>
</ul>
</li>
<li>
<p>@mvanhorn</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19234" target="_blank" rel="noopener noreferrer">Fixed: clarify empty-content access diagnostics (#19234)</a></li>
</ul>
</li>
<li>
<p>@hustcer</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19232" target="_blank" rel="noopener noreferrer">Fixed(ci): preserve warnings in nightly release builds (#19232)</a></li>
</ul>
</li>
<li>
<p>@bfren</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19228" target="_blank" rel="noopener noreferrer">Optimized module reloading check (#19228)</a></li>
</ul>
</li>
<li>
<p>@eugenesvk</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19224" target="_blank" rel="noopener noreferrer">Used builtin command sigil to avoid bugs when user aliases shadow builtin (#19224)</a></li>
</ul>
</li>
<li>
<p>@Kissaki</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19218" target="_blank" rel="noopener noreferrer">Fixed conditional tutor text typos (#19218)</a></li>
</ul>
</li>
<li>
<p>@skyfireitdiy</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19213" target="_blank" rel="noopener noreferrer">Fixed: support IPv6 zone IDs in http commands (#19213)</a></li>
</ul>
</li>
<li>
<p>@sidney3</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19210" target="_blank" rel="noopener noreferrer">Strict clocktime regex (#19210)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19208" target="_blank" rel="noopener noreferrer">Added anti join (#19208)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19204" target="_blank" rel="noopener noreferrer">Detected duration type (#19204)</a></li>
</ul>
</li>
<li>
<p>@itsF4LCON</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19205" target="_blank" rel="noopener noreferrer"><code>open</code>/<code>save</code>: gave a clear error suggesting <code>def</code> when the <code>from</code>/<code>to</code> converter is an alias (#19205)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19202" target="_blank" rel="noopener noreferrer">chore: bumped reedline to d704744 (#19202)</a></li>
</ul>
</li>
<li>
<p>@ymcx</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19201" target="_blank" rel="noopener noreferrer">Don't let lifted columns overwrite normal columns while flattening (#19201)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19196" target="_blank" rel="noopener noreferrer">Don't allow duplicate column names in Rename (#19196)</a></li>
</ul>
</li>
<li>
<p>@SyedYousufFaizan</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19194" target="_blank" rel="noopener noreferrer">Fixed(LSP) lsp crash on symbol requests for unopened or closed documents (#19194)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19246" target="_blank" rel="noopener noreferrer">build(deps): bumped crate-ci/typos from 1.50.3 to 1.51.1 (#19246)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19245" target="_blank" rel="noopener noreferrer">build(deps): bumped uuid from 1.27.0 to 1.28.0 (#19245)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19244" target="_blank" rel="noopener noreferrer">build(deps): bumped vedantmgoyal2009/winget-releaser from 4ffc7888bffd451b357355dc214d43bb9f23917e to b7370d4d152efdce803a26cc6ca9eee58cb2ad54 (#19244)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19243" target="_blank" rel="noopener noreferrer">build(deps): bumped taiki-e/install-action from 2.87.24 to 2.87.27 (#19243)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19242" target="_blank" rel="noopener noreferrer">build(deps): bumped actions/upload-artifact from 7.0.1 to 7.0.2 (#19242)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19241" target="_blank" rel="noopener noreferrer">build(deps): bumped lean_string from 0.7.0 to 0.8.0 (#19241)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19240" target="_blank" rel="noopener noreferrer">build(deps): bumped unicase from 2.9.0 to 2.10.0 (#19240)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1246" target="_blank" rel="noopener noreferrer">Refactored(engine): replaced the filtered-item sentinel with a last-run enum (#1246)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1245" target="_blank" rel="noopener noreferrer">Fixed(engine): clear the last command context when a read starts (#1245)</a></li>
</ul>
</li>
<li>
<p>@easyinplay</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1132" target="_blank" rel="noopener noreferrer">Feat(engine): added opt-in paste hooks for interception and burst detection (#1132)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>@fdncred
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1285" target="_blank" rel="noopener noreferrer">Added placeholder flag for async oh-my.nu (#1285)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>@Kissaki
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2258" target="_blank" rel="noopener noreferrer">Fixed wording issue in 0.116.0 release notes (#2258)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>@etrobert
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/244" target="_blank" rel="noopener noreferrer">Measured formatted call when deciding to wrap it (#244)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/243" target="_blank" rel="noopener noreferrer">Wrapped records that exceed line_length (#243)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@gtnebel
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/174" target="_blank" rel="noopener noreferrer">Added nu_plugin_nuplot to plugin list (#174)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-10-16T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #372</title>
    <id>https://www.nushell.sh/blog/2026-10-09-twin0372.html</id>
    <link href="https://www.nushell.sh/blog/2026-10-09-twin0372.html"/>
    <updated>2026-10-09T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Sunday, 2026-10-25, including PRs merged Friday, 2026-10-02 through Thursday, 2026-10-08.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19190" target="_blank" rel="noopener noreferrer">added record family of commands (#19190)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19187" target="_blank" rel="noopener noreferrer">fixed in and not-in between cell paths, and a panic on an empty cell path (#19187)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19172" target="_blank" rel="noopener noreferrer">fixed match to allow <code>..</code> and <code>..$rest</code> anywhere in a <code>match</code> list pattern, like Rust (#19172)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19164" target="_blank" rel="noopener noreferrer">made minor updates to AGENTS.md and CONTRIBUTING.md (#19164)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19160" target="_blank" rel="noopener noreferrer">bumped rust toolchain to 1.97.1 (#19160)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19145" target="_blank" rel="noopener noreferrer">fixed ps to list every process and report the same columns on every platform (#19145)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19138" target="_blank" rel="noopener noreferrer">made the parser parse real scripts about 1.3x faster (#19138)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19136" target="_blank" rel="noopener noreferrer">fixed startup to time nushell from <code>main</code> like bash and zsh, and fix <code>exec</code> (#19136)</a></li>
</ul>
</li>
<li>
<p>@qodelicious</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19189" target="_blank" rel="noopener noreferrer">wrote line breaks in <code>to md</code> table cells as <br> (#19189)</a></li>
</ul>
</li>
<li>
<p>@ymcx</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19185" target="_blank" rel="noopener noreferrer">fixed a crash if buffer editor is invalid (#19185)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19183" target="_blank" rel="noopener noreferrer">fixed IDE completion with an out of bounds location (#19183)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19153" target="_blank" rel="noopener noreferrer">made nushell start non-interactively when running as MCP server (#19153)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19181" target="_blank" rel="noopener noreferrer">fixed nix to take libx11 instead of the deprecated xorg set (#19181)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19175" target="_blank" rel="noopener noreferrer">bumped reedline to e9fcfdb (#19175)</a></li>
</ul>
</li>
<li>
<p>@Adnan-Husayn</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19180" target="_blank" rel="noopener noreferrer">added LSP <code>serverInfo</code> to the initialize response (#19180)</a></li>
</ul>
</li>
<li>
<p>@Sha1rholder</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19173" target="_blank" rel="noopener noreferrer">removed the x86_64-darwin target in flake.nix (#19173)</a></li>
</ul>
</li>
<li>
<p>@rvhelden</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19167" target="_blank" rel="noopener noreferrer">fixed a bug where the debug adapter inspect would deadlock (#19167)</a></li>
</ul>
</li>
<li>
<p>@weslem</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19166" target="_blank" rel="noopener noreferrer">corrected float <code>into string</code> conversions (#19166)</a></li>
</ul>
</li>
<li>
<p>@feiiiiii5</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19165" target="_blank" rel="noopener noreferrer">measured nuon table column widths in runes, not bytes (#19165)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19158" target="_blank" rel="noopener noreferrer">rejected <code>to nuon --raw --no-commas</code>, which writes no separator (#19158)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19157" target="_blank" rel="noopener noreferrer">stripped one leading byte order mark in <code>from nuon</code> (#19157)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19087" target="_blank" rel="noopener noreferrer">fixed nuon to error on a duration head that overflows (#19087)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19156" target="_blank" rel="noopener noreferrer">made changes after patch release (#19156)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19154" target="_blank" rel="noopener noreferrer">prepared for patch release (#19154)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19139" target="_blank" rel="noopener noreferrer">allowed <code>TZ_VARIANTS</code> in <code>into datetime --timezone</code> (#19139)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19106" target="_blank" rel="noopener noreferrer">updated CI artifact uploading (#19106)</a></li>
</ul>
</li>
<li>
<p>@akshitj11</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19150" target="_blank" rel="noopener noreferrer">added only matching output flag to find (#19150)</a></li>
</ul>
</li>
<li>
<p>@GhostCoder6969</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19143" target="_blank" rel="noopener noreferrer">fixed it-if typo in chained error doc comment (#19143)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19178" target="_blank" rel="noopener noreferrer">bumped hustcer/setup-nu from 3.27 to 3.28 (#19178)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19155" target="_blank" rel="noopener noreferrer">bumped xxhash-rust from 0.8.15 to 0.8.19 (#19155)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Sunday, 2026-10-25, including PRs merged Friday, 2026-10-02 through Thursday, 2026-10-08.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19190" target="_blank" rel="noopener noreferrer">added record family of commands (#19190)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19187" target="_blank" rel="noopener noreferrer">fixed in and not-in between cell paths, and a panic on an empty cell path (#19187)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19172" target="_blank" rel="noopener noreferrer">fixed match to allow <code>..</code> and <code>..$rest</code> anywhere in a <code>match</code> list pattern, like Rust (#19172)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19164" target="_blank" rel="noopener noreferrer">made minor updates to AGENTS.md and CONTRIBUTING.md (#19164)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19160" target="_blank" rel="noopener noreferrer">bumped rust toolchain to 1.97.1 (#19160)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19145" target="_blank" rel="noopener noreferrer">fixed ps to list every process and report the same columns on every platform (#19145)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19138" target="_blank" rel="noopener noreferrer">made the parser parse real scripts about 1.3x faster (#19138)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19136" target="_blank" rel="noopener noreferrer">fixed startup to time nushell from <code>main</code> like bash and zsh, and fix <code>exec</code> (#19136)</a></li>
</ul>
</li>
<li>
<p>@qodelicious</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19189" target="_blank" rel="noopener noreferrer">wrote line breaks in <code>to md</code> table cells as <br> (#19189)</a></li>
</ul>
</li>
<li>
<p>@ymcx</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19185" target="_blank" rel="noopener noreferrer">fixed a crash if buffer editor is invalid (#19185)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19183" target="_blank" rel="noopener noreferrer">fixed IDE completion with an out of bounds location (#19183)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19153" target="_blank" rel="noopener noreferrer">made nushell start non-interactively when running as MCP server (#19153)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19181" target="_blank" rel="noopener noreferrer">fixed nix to take libx11 instead of the deprecated xorg set (#19181)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19175" target="_blank" rel="noopener noreferrer">bumped reedline to e9fcfdb (#19175)</a></li>
</ul>
</li>
<li>
<p>@Adnan-Husayn</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19180" target="_blank" rel="noopener noreferrer">added LSP <code>serverInfo</code> to the initialize response (#19180)</a></li>
</ul>
</li>
<li>
<p>@Sha1rholder</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19173" target="_blank" rel="noopener noreferrer">removed the x86_64-darwin target in flake.nix (#19173)</a></li>
</ul>
</li>
<li>
<p>@rvhelden</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19167" target="_blank" rel="noopener noreferrer">fixed a bug where the debug adapter inspect would deadlock (#19167)</a></li>
</ul>
</li>
<li>
<p>@weslem</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19166" target="_blank" rel="noopener noreferrer">corrected float <code>into string</code> conversions (#19166)</a></li>
</ul>
</li>
<li>
<p>@feiiiiii5</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19165" target="_blank" rel="noopener noreferrer">measured nuon table column widths in runes, not bytes (#19165)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19158" target="_blank" rel="noopener noreferrer">rejected <code>to nuon --raw --no-commas</code>, which writes no separator (#19158)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19157" target="_blank" rel="noopener noreferrer">stripped one leading byte order mark in <code>from nuon</code> (#19157)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19087" target="_blank" rel="noopener noreferrer">fixed nuon to error on a duration head that overflows (#19087)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19156" target="_blank" rel="noopener noreferrer">made changes after patch release (#19156)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19154" target="_blank" rel="noopener noreferrer">prepared for patch release (#19154)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19139" target="_blank" rel="noopener noreferrer">allowed <code>TZ_VARIANTS</code> in <code>into datetime --timezone</code> (#19139)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19106" target="_blank" rel="noopener noreferrer">updated CI artifact uploading (#19106)</a></li>
</ul>
</li>
<li>
<p>@akshitj11</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19150" target="_blank" rel="noopener noreferrer">added only matching output flag to find (#19150)</a></li>
</ul>
</li>
<li>
<p>@GhostCoder6969</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19143" target="_blank" rel="noopener noreferrer">fixed it-if typo in chained error doc comment (#19143)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19178" target="_blank" rel="noopener noreferrer">bumped hustcer/setup-nu from 3.27 to 3.28 (#19178)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19155" target="_blank" rel="noopener noreferrer">bumped xxhash-rust from 0.8.15 to 0.8.19 (#19155)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1240" target="_blank" rel="noopener noreferrer">fixed helix to give h and l the arrow keys' fallbacks in normal mode (#1240)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1239" target="_blank" rel="noopener noreferrer">fixed engine to keep auto-pairs out of menu queries and hint before trailing closers (#1239)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1234" target="_blank" rel="noopener noreferrer">documented engine to spell out what a templated buffer editor keeps and test envs (#1234)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1233" target="_blank" rel="noopener noreferrer">fixed painter to hide the cursor before the anchor query (#1233)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1238" target="_blank" rel="noopener noreferrer">prepared for patch release (#1238)</a></li>
</ul>
</li>
<li>
<p>@Dark-Alex-17</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1236" target="_blank" rel="noopener noreferrer">fixed painter to saturate the large buffer line math for 0/1-row terminals (#1236)</a></li>
</ul>
</li>
<li>
<p>@SatvikMishra08</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1224" target="_blank" rel="noopener noreferrer">documented the Completion and VI UX checklist (#349) (#1224)</a></li>
</ul>
</li>
<li>
<p>@glcraft</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1188" target="_blank" rel="noopener noreferrer">added helix match selection to editor (#1188)</a></li>
</ul>
</li>
<li>
<p>@pickx</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1041" target="_blank" rel="noopener noreferrer">added templated command for OpenEditor (#1041)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@roberttidball</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1284" target="_blank" rel="noopener noreferrer">added fxmacrodata module (#1284)</a></li>
</ul>
</li>
<li>
<p>@fdncred</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1283" target="_blank" rel="noopener noreferrer">updated git completions to the latest completion syntax (#1283)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@fdncred</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2257" target="_blank" rel="noopener noreferrer">updated the tui docs (#2257)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2256" target="_blank" rel="noopener noreferrer">wrote release notes for <code>v0.116.1</code> (#2256)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>
<p>@Sha1rholder</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/239" target="_blank" rel="noopener noreferrer">changed nushell badge version in README to 0.116.1 (#239)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/238" target="_blank" rel="noopener noreferrer">upgraded rust edition and dependencies; removed &quot;authors&quot; in Cargo.toml (#238)</a></li>
</ul>
</li>
<li>
<p>@fdncred</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/237" target="_blank" rel="noopener noreferrer">batch fixed issues 217, 220, 231, 232, 233, 236 and upgraded to 0.116.1 (#237)</a></li>
</ul>
</li>
<li>
<p>@iibabyy</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/235" target="_blank" rel="noopener noreferrer">refactored format_signature to compute and store the default values of every args once (#235)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@wangjiawen2013
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/173" target="_blank" rel="noopener noreferrer">added nu_plugin_charton to plugins list (#173)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-10-09T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">Nushell 0.116.1</title>
    <id>https://www.nushell.sh/blog/2026-10-04-nushell_v0_116_1.html</id>
    <link href="https://www.nushell.sh/blog/2026-10-04-nushell_v0_116_1.html"/>
    <updated>2026-10-04T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Today, we're releasing version 0.116.1 of Nu. This patch release improves TUI widgets with live stream updates, customizable borders and titles, and more reliable pane resizing, while fixing completions and refining startup-time reporting.</p>
<h1>Where to get it</h1>
<p>Nu 0.116.1 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.116.1" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>]]></summary>
    <content type="html"><![CDATA[
<p>Today, we're releasing version 0.116.1 of Nu. This patch release improves TUI widgets with live stream updates, customizable borders and titles, and more reliable pane resizing, while fixing completions and refining startup-time reporting.</p>
<h1>Where to get it</h1>
<p>Nu 0.116.1 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.116.1" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Changes </h1>
<h2>Deprecations </h2>
<h3>Deprecation: <code>tui label --title</code> is now <code>tui label --titlebar</code>  </h3>
<p>To put a label in the top bar, use <code>tui label --titlebar &quot;My app&quot;</code> instead of <code>tui label --title &quot;My app&quot;</code>. The old switch still works but warns on first use and is scheduled for removal in 0.118.0.</p>
<h2>Additions </h2>
<h3>Widgets can set their border title with <code>--title</code>  </h3>
<p>Use <code>--title &lt;text&gt;</code> to name the border of <code>tui table</code>, <code>tui tree</code>, <code>tui select</code>, <code>tui log</code>, <code>tui preview</code>, <code>tui search</code>, or <code>tui textbox</code>. The title replaces the widget's default name, while row counts and status indicators remain visible. For example:</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> table</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">title</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> files</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> run</span></span></code></pre>
</div><p>The table's border now reads <code>files (12)</code> rather than <code>table (12)</code> when it has 12 rows. For <code>tui preview</code>, the previewed filename follows the custom title, as in <code>files (Cargo.toml)</code>; without a file to preview, only the custom title appears. For <code>tui search</code>, the title also becomes the default placeholder unless <code>--placeholder</code> is set. An empty <code>--title</code> is rejected.</p>
<h3>Choose <code>tui</code> border lines with <code>--border</code> or <code>$env.config.tui.border_type</code>  </h3>
<p>Bordered TUI widgets now accept <code>--border &lt;name&gt;</code> to change their outline. This includes <code>tui table</code>, <code>tui tree</code>, <code>tui select</code>, <code>tui log</code>, <code>tui preview</code>, <code>tui search</code>, <code>tui textbox</code>, <code>tui box</code>, and the dropdowns opened by <code>tui menu</code>. The names match <code>table --theme</code> options, and the flag offers completion for valid border names.</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> table</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">border</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> rounded</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> run</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.tui.border_type</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "double"</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> table</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> run</span></span></code></pre>
</div><p><code>$env.config.tui.border_type</code> sets the default for all TUI borders, including menu dropdowns and dialog frames. An individual widget's <code>--border</code> overrides it. The default is <code>single</code>, which preserves the previous appearance. For example, <code>rounded</code> draws <code>╭─╮</code>, <code>double</code> draws <code>╔═╗</code>, and <code>heavy</code> draws <code>┏━┓</code>; styles such as <code>basic</code>, <code>dots</code>, and <code>markdown</code> are available too.</p>
<p><code>none</code> and <code>default</code> are not valid TUI border names. Use <code>frameless</code> for an outline with no visible lines: it still occupies one cell, and the widget's title remains visible. When a widget has its own <code>--border</code>, its <code>widgets</code> record includes the selected border name.</p>
<h2>Bug fixes </h2>
<h3>TUI widgets now display streamed data as it arrives  </h3>
<p>Slow and endless streams now update TUI widgets while <code>tui run</code> is open. A log displays each row as it arrives, and a progress bar advances as its input runs instead of starting at 100%:</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">..</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> each</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">n</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">sleep</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1sec</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">; </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$n</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> log</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> run</span></span></code></pre>
</div><p>This also works for streams piped into widgets in a child list, such as <code>tui split [(tail -f app.log | tui log) (ls | tui table)]</code>.</p>
<p>TUI builders now always output a <code>tui</code> value: piping one into a non-TUI command, such as <code>1.. | tui table | first</code>, no longer returns the input rows. A TUI value saved with <code>let</code> reads its stream on the first run. If the stream finishes, later runs display the same rows; if it stops early, later runs display no rows. When a <code>tui run</code> closure, <code>tui bind</code>, button, or menu hook returns data, that data replaces the piped data for the rest of the run, without additional rows arriving from the stream.</p>
<p>Streams now keep around 100,000 of their newest rows, dropping older rows in batches of 12,500. Up to 12,499 extra rows can appear between drops, and <code>tui log --max-lines</code> can raise the limit further. Piping data into a child list whose widgets all specify <code>--data</code> now produces an error instead of silently ignoring the input.</p>
<h3>TUI split panes now resize reliably with keyboard and mouse  </h3>
<p>After focusing a <code>tui split</code> with Tab, the arrow keys or <code>h</code>/<code>j</code>/<code>k</code>/<code>l</code> move its first divider in either direction. Each press moves it one cell on splits up to 100 cells wide or tall when there is room; on larger splits, a press may move it a few cells. This works for both the default side-by-side layout and <code>--vertical</code>, including short splits where resizing previously got stuck.</p>
<div class="language-nu" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> split</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [(</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> table</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) (</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> preview</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> run</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> split</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [(</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> table</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) (</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> preview</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)] </span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic">--</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">vertical</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> tui</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> run</span></span></code></pre>
</div><p>Dragging a divider with the mouse now places it as close to the pointer as the surrounding panes allow, including dividers between later panes in a split. Resizing preserves at least one cell for every pane, and fixed-height splits such as a row of buttons no longer respond to keyboard resizing.</p>
<h3>Completion menus stay open when nothing matches  </h3>
<p>An open completion menu no longer closes when the typed text stops matching.
It shows <code>NO RECORDS FOUND</code> and fills again once the text matches, as it did before 0.116.
Cancelling an <code>@interactive</code> picker with Esc now closes its menu right away, and Tab on the same line opens the picker again.</p>
<h3>Startup time now starts inside Nushell and is available throughout startup  </h3>
<p><code>$nu.startup-time</code> is now measured from the start of Nushell's <code>main</code> function, rather than from when the operating system created the process. It no longer includes the time spent loading the executable and its libraries, and <code>exec nu</code> starts a fresh measurement instead of carrying over the previous program's time. This applies across platforms.</p>
<p>Before startup finishes, <code>$nu.startup-time</code> now contains the elapsed startup time instead of <code>-1ns</code>. It is available in config files, <code>-e</code> commands, and the <code>--mcp</code>, <code>--lsp</code>, <code>--dap</code>, and <code>--ide-check</code> modes. The <code>--ide-hover</code>, <code>--ide-complete</code>, <code>--ide-goto-def</code>, and <code>--ide-ast</code> modes can now also access <code>$nu</code>, enabling type information for constants built from it and completion of <code>$nu</code> fields. Config files loaded with <code>nu --mcp</code> now see <code>$nu.is-mcp</code> as <code>true</code>.</p>
<p>With <code>--log-level perf</code>, the &quot;before main&quot; line is gone. The final REPL startup line is labeled &quot;startup (main to first prompt)&quot;, and the <code>--mcp</code> and <code>--lsp</code> startup lines no longer include the time spent serving the rest of the session.</p>
<h3>Other fixes </h3>
<ul>
<li>Fixed some incorrect cell path parsing. (<a href="https://github.com/nushell/nushell/pull/19112" target="_blank" rel="noopener noreferrer">#19112</a>)</li>
<li>Fixed a regression since 0.115 where custom completers on a <code>def --wrapped</code> rest parameter were not called for arguments starting with <code>-</code>, so <code>what --&lt;Tab&gt;</code> only offered declared flags. (<a href="https://github.com/nushell/nushell/pull/19130" target="_blank" rel="noopener noreferrer">#19130</a>)</li>
</ul>
<h2>Other changes</h2>
<h3>Changed <code>tui</code> records  </h3>
<p>For scripts that inspect TUI values, a titled widget now has a <code>title</code> field in its <code>widgets</code> record, and a top-bar label's <code>slot</code> is now <code>titlebar</code> instead of <code>title</code>. When nothing is being previewed, <code>values.&lt;preview id&gt;.title</code> is now an empty string rather than <code>preview</code>.</p>
<h1>Hall of fame </h1>
<p>Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏</p>
<h1>Full changelog </h1>
<p>| author                                                   | title                                                                                             | link                                                    |
|</p>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-10-04T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #371</title>
    <id>https://www.nushell.sh/blog/2026-10-02-twin0371.html</id>
    <link href="https://www.nushell.sh/blog/2026-10-02-twin0371.html"/>
    <updated>2026-10-02T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Sunday, 2026-10-25, including PRs merged Friday, 2026-09-25 through Thursday, 2026-10-01.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19130" target="_blank" rel="noopener noreferrer">ran a wrapped rest completer on flag-like tokens (#19130)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19129" target="_blank" rel="noopener noreferrer">kept menus open on no match, letting cancelled pickers close and reopen (#19129)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19123" target="_blank" rel="noopener noreferrer">bumped reedline to d7bcb12 (#19123)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19085" target="_blank" rel="noopener noreferrer">expanded alias heads in <code>place.command</code>, kept completer warnings off the menu (#19085)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19112" target="_blank" rel="noopener noreferrer">updated cell_path.rs (#19112)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19102" target="_blank" rel="noopener noreferrer"><code>--title</code> renamed a widget's border; <code>tui label --title</code> became <code>--titlebar</code> (#19102)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19101" target="_blank" rel="noopener noreferrer">arrow keys resized <code>tui split</code> panes in both directions (#19101)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19100" target="_blank" rel="noopener noreferrer"><code>--border</code> and <code>$env.config.tui.border_type</code> picked border lines by <code>table --theme</code> name (#19100)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19099" target="_blank" rel="noopener noreferrer">builders no longer read piped streams, so slow streams showed live (#19099)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19090" target="_blank" rel="noopener noreferrer">bumped minor version (#19090)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19084" target="_blank" rel="noopener noreferrer">fixed nushell command docs build error (#19084)</a></li>
</ul>
</li>
<li>
<p>@costajohnt:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19083" target="_blank" rel="noopener noreferrer">kept XDG config when there is no home directory (#19083)</a></li>
</ul>
</li>
<li>
<p>@pickx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19082" target="_blank" rel="noopener noreferrer">added forward slash/backslash to <code>char</code> (#19082)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19119" target="_blank" rel="noopener noreferrer">bumped mq-markdown from 0.8.4 to 0.9.1 (#19119)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19118" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.50.2 to 1.50.3 (#19118)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19117" target="_blank" rel="noopener noreferrer">bumped taiki-e/install-action from 2.87.17 to 2.87.21 (#19117)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Sunday, 2026-10-25, including PRs merged Friday, 2026-09-25 through Thursday, 2026-10-01.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19130" target="_blank" rel="noopener noreferrer">ran a wrapped rest completer on flag-like tokens (#19130)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19129" target="_blank" rel="noopener noreferrer">kept menus open on no match, letting cancelled pickers close and reopen (#19129)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19123" target="_blank" rel="noopener noreferrer">bumped reedline to d7bcb12 (#19123)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19085" target="_blank" rel="noopener noreferrer">expanded alias heads in <code>place.command</code>, kept completer warnings off the menu (#19085)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19112" target="_blank" rel="noopener noreferrer">updated cell_path.rs (#19112)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19102" target="_blank" rel="noopener noreferrer"><code>--title</code> renamed a widget's border; <code>tui label --title</code> became <code>--titlebar</code> (#19102)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19101" target="_blank" rel="noopener noreferrer">arrow keys resized <code>tui split</code> panes in both directions (#19101)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19100" target="_blank" rel="noopener noreferrer"><code>--border</code> and <code>$env.config.tui.border_type</code> picked border lines by <code>table --theme</code> name (#19100)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19099" target="_blank" rel="noopener noreferrer">builders no longer read piped streams, so slow streams showed live (#19099)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19090" target="_blank" rel="noopener noreferrer">bumped minor version (#19090)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19084" target="_blank" rel="noopener noreferrer">fixed nushell command docs build error (#19084)</a></li>
</ul>
</li>
<li>
<p>@costajohnt:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19083" target="_blank" rel="noopener noreferrer">kept XDG config when there is no home directory (#19083)</a></li>
</ul>
</li>
<li>
<p>@pickx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19082" target="_blank" rel="noopener noreferrer">added forward slash/backslash to <code>char</code> (#19082)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19119" target="_blank" rel="noopener noreferrer">bumped mq-markdown from 0.8.4 to 0.9.1 (#19119)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19118" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.50.2 to 1.50.3 (#19118)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19117" target="_blank" rel="noopener noreferrer">bumped taiki-e/install-action from 2.87.17 to 2.87.21 (#19117)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@Mrakorez:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1235" target="_blank" rel="noopener noreferrer">used <code>fd-lock</code> for file locking on Android (#1235)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1229" target="_blank" rel="noopener noreferrer">bumped minor version (#1229)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>@fnuttens:
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1275" target="_blank" rel="noopener noreferrer">added abbreviations (#1275)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2253" target="_blank" rel="noopener noreferrer">updated docs, tested and fixed examples (#2253)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2251" target="_blank" rel="noopener noreferrer">fixed deploy workflow by configuring GitHub Pages before deployment (#2251)</a></li>
</ul>
</li>
<li>
<p>@Decodetalkers:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2250" target="_blank" rel="noopener noreferrer">made external_completer follow the nushell changes (#2250)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2249" target="_blank" rel="noopener noreferrer">replaced <code>$buffer | split</code> with <code>$place.command</code> in examples (#2249)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2248" target="_blank" rel="noopener noreferrer">fixed release notes for 0.116.0 (#2248)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2247" target="_blank" rel="noopener noreferrer">published release notes for <code>v0.116.0</code> (#2247)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2246" target="_blank" rel="noopener noreferrer">refreshed command docs for v0.116.0 (#2246)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2254" target="_blank" rel="noopener noreferrer">bumped undici from 7.29.0 to 7.30.0 (#2254)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>@iibabyy:
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/229" target="_blank" rel="noopener noreferrer">fixed nufmt removing invalid default values for named flags (#229)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@maxomatic458:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/172" target="_blank" rel="noopener noreferrer">added reedline-bash to reedline integrations (#172)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-10-02T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">Nushell 0.116.0</title>
    <id>https://www.nushell.sh/blog/2026-09-26-nushell_v0_116_0.html</id>
    <link href="https://www.nushell.sh/blog/2026-09-26-nushell_v0_116_0.html"/>
    <updated>2026-09-26T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Today, we're releasing version 0.116.0 of Nu. This release brings a major custom completion rework, new <code>tui</code> commands for building terminal interfaces, interactive debugging, more tutor lessons, and a faster shell.</p>
<h1>In memory of Yash</h1>
<pre>
"It is with profound grief
and deep love
that the family of
Yash Thakur
announces his passing on
April 2, 2026."
</pre>]]></summary>
    <content type="html"><![CDATA[
<p>Today, we're releasing version 0.116.0 of Nu. This release brings a major custom completion rework, new <code>tui</code> commands for building terminal interfaces, interactive debugging, more tutor lessons, and a faster shell.</p>
<h1>In memory of Yash</h1>
<pre>
"It is with profound grief
and deep love
that the family of
Yash Thakur
announces his passing on
April 2, 2026."
</pre>
<p>The Nushell team is deeply saddened by Yash's passing.</p>
<p>We found out about his passing recently and wanted to acknowledge his dedication and contributions to our project, as well as the friendship he shared with the Nushell community. Our condolences go out to his friends and family.</p>
<p>Yash started working on Nushell at the young age of 19 in September 2023.</p>
<p>He quickly learned the project and, in a short time, became a valuable contributor to the inner workings of Reedline, the parser, completions, and other components. At the time of his passing, he was also helping develop a new parser for Nushell.</p>
<p>Please consider reading the beautiful obituary written for Yash to learn more about his life, passions, interests, and amazing spirit.</p>
<ul>
<li><a href="https://www.goinghomecares.com/obituaries/Yash-Santosh-Thakur?obId=48028771" target="_blank" rel="noopener noreferrer">Yash Santosh Thakur Obituary</a></li>
</ul>
<h1>Where to get it</h1>
<p>Nu 0.116.0 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.116.0" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Highlights and themes of this release </h1>
<h2>I'm too lazy to type, lemme press tab </h2>
<p>Pressing Tab is easy. Making everything behind it agree on how completions work took a bit more effort. Thanks to <a href="https://github.com/philocalyst" target="_blank" rel="noopener noreferrer">@philocalyst</a>, custom completions now share one input and output model across parameter completers, command-wide completers, external completers, and menu sources. Completers can ask for the token, the completion location, or the whole buffer, and combine their suggestions with other completion sources.</p>
<div class="hint-container warning">
<p class="hint-container-title">Breaking change</p>
<p>Existing custom completers and menu sources may need updating. See the examples and migration table in <a href="#unified-custom-completions">unified custom completions</a>.</p>
</div>
<p>There are plenty of smaller improvements around that big rework, too. Completers can now <a href="#completion-input-now-exposes-the-command-being-completed">see which command you are completing</a>, and external completers <a href="#external-completers-now-receive-expanded-alias-commands-and-show-warnings-after-menus-close">receive expanded aliases</a>. Sourced menus <a href="#sourced-menus-now-refresh-correctly-after-partial-completion">refresh properly after partial completion</a>, warnings wait until the menu closes, and you can opt into <a href="#env-config-completions-persistent-menus-keeps-completion-and-history-menus-open-while-editing">keeping completion and history menus open while editing</a>. Less fighting the menu, more pressing Tab.</p>
<h2>Teach me things </h2>
<p>Nushell's interactive <code>tutor</code> has more lessons for you. Thanks to <a href="https://github.com/nos1dot618" target="_blank" rel="noopener noreferrer">@nos1dot618</a>, you can now learn about <a href="#the-interactive-tutor-now-teaches-command-history-shortcuts-and-the-env-variable">command-history shortcuts and <code>$env</code></a>, write your own <a href="#the-interactive-tutor-now-covers-custom-commands-and-pipeline-input">custom commands and work with pipeline input</a>, and get to grips with <a href="#the-interactive-tutor-now-teaches-if-match-and-where"><code>if</code>, <code>match</code>, and <code>where</code></a>.</p>
<p>If you have been meaning to move beyond the commands you already know, this is a good excuse. Run <code>tutor</code> and try a lesson right there in your shell.</p>
<h2>Build your TUI straight in Nushell </h2>
<p>Ever wanted your script to have a little interface? Thanks to <a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a>, the new <code>tui</code> commands let you build interactive terminal interfaces straight from Nushell. Put together tables, textboxes, menus, and more, then get the user's selections and entered values back as a record.</p>
<p>You probably won't replace your entire Ratatui application this afternoon, but a picker or a small form no longer needs a separate Rust project. You can even open it as a floating dialog, and your shell comes back intact when you quit. Take a look at the commands and examples <a href="#build-interactive-terminal-interfaces-with-tui">here</a>, then head over to the <a href="https://github.com/nushell/nushell/pull/19025" target="_blank" rel="noopener noreferrer">original PR</a> for more. Even this changelog cannot easily cover everything these commands can do.</p>
<h2>Interactive debugging! </h2>
<p>That script is doing something strange again. Time to set a breakpoint. Thanks to <a href="https://github.com/rvhelden" target="_blank" rel="noopener noreferrer">@rvhelden</a>, Nushell now has a Debug Adapter Protocol server, started with <code>nu --dap</code>, so you can debug your scripts from an editor that supports DAP.</p>
<p>Set breakpoints, step through pipelines, inspect variables, and evaluate watch expressions. You can even step backward through a recorded timeline when you realize you just stepped past the interesting bit. A lot of work behind a small flag. More details are <a href="#nu-dap-starts-a-debug-adapter-protocol-server-for-nushell-scripts">here</a>.</p>
<h2>Make Nushell faster </h2>
<p>There is less waiting around this release, too. <a href="#faster-typing-of-use-in-the-repl">Typing and completing <code>use</code> in the REPL</a> does less work, and <a href="#nu-startup-time-is-now-accurate-and-nushell-starts-faster-with-large-configs">large configs load faster</a>, along with the plugin registry. <code>gstat</code> also finds the nearest tag faster in large repositories.</p>
<p><code>$nu.startup-time</code> now measures all the way to the first prompt being ready, so you get a more honest account of where that time went. There is also <a href="#other-performance-improvements">faster parsing and less work when styling values</a>, and the <a href="#faster-repeated-source-of-the-same-file">repeated <code>source</code> slowdown introduced in 0.115</a> is fixed. Thanks to everyone making the shell a little quicker, one less bit of unnecessary work at a time.</p>
<h1>Changes </h1>
<h2>Breaking changes </h2>
<h3>Unified custom completions  </h3>
<p>Custom completions now use one shared input and output model across parameter completers, command-wide completers, external completers, and menu sources. This makes completion behavior more consistent, but it means existing custom completers and menu sources may need to be updated.</p>
<p>Previously, different completion entry points received different arguments. Parameter completers received something like <code>[context, offset]</code>, command-wide completers received <code>[spans]</code>, external completers commonly received <code>{|spans| ...}</code>, and menu sources received <code>{|buffer, position| ...}</code>.</p>
<p>Completers now declare which completion inputs they want by naming their positional parameters. The recognized names are <code>token</code>, <code>place</code>, and <code>buffer</code>, and they can be declared in any order.</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> complete-branch</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">token</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">record</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">    git</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> branch</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">format</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '%(refname:short)'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> lines</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> where</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $it</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =~</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $token.text</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> complete-from-place</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">place</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">record</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">    if</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $place.kind</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "flag-value"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> and</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $place.flag</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "profile"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">        [</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">debug</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> release</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> complete-from-buffer</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">buffer</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    $buffer</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> split row</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> " "</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> complete-from-multiple</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">token</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">record</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">place</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">record</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">buffer</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">    #...</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><ul>
<li><code>token</code> describes the token at the cursor, with fields like <code>text</code>, <code>kind</code>, and <code>span</code>.</li>
<li><code>place</code> describes the resolved completion site and replacement range, including fields like <code>cursor</code>, <code>target</code>, <code>kind</code>, <code>flag</code>, <code>index</code>, <code>command</code> and <code>shape</code> when applicable.</li>
<li><code>buffer</code> is the exact command line from the beginning of the line through the cursor, including text before pipes, inside closures, and after separators.</li>
</ul>
<p>To demonstrate how they look we'll use the newly added <code>commandline complete --input</code> (explained further below) to see what a completer receives:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'git checkout mai'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> commandline</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> complete</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">input</span></span></code></pre>
</div><div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    token</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        text</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> mai</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        kind</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> value</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        span</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">            start</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 13</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">            end</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 16</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">        }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    },</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    place</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        cursor</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 16</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        target</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">            start</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 13</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">            end</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 16</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">        },</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        kind</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> positional</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        index</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        shape</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> external-argument</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        command</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">            git</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">            checkout</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">            mai</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">        ]</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    },</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    buffer</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "git checkout mai"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><p>Use <code>buffer</code> instead of calling <code>commandline</code> from inside a completer. <code>buffer</code> is always the line currently being completed; <code>commandline</code> can be empty in some editor states, such as after <code>;</code>.</p>
<p>Menu sources use this same input model now. A source that used to look like this:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">source</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">buffer</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">position</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">|</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    $buffer</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str substring</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ..&#x3C;</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$position</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> split row</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> " "</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> last</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><p>should usually become either:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">source</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">token</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$token.text</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span></code></pre>
</div><p>or, if it really needs the whole line:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">source</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">buffer</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$buffer</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span></code></pre>
</div><p>External completers also need to migrate from the old spans-style input to the new named inputs. For example, a whole-line external completer should declare <code>buffer</code> or <code>place</code>:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.completions.external.completer</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">place</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">|</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">    carapace</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$place.command</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> first</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">nushell</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ...</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$place.command</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from json</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><p>If a completer declares an unrecognized positional name, Nushell passes <code>nothing</code> for that parameter and writes a diagnostic to the completion log.</p>
<p>Custom completer output is also handled more consistently. A completer can now return <code>null</code> to decline and let another completion source answer, a string or list of strings, suggestion records, or an envelope record with <code>completions</code>, <code>options</code>, and <code>fallback</code>.</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> complete-preset</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">token</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">record</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        completions</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">            {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> main</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">description:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "default branch"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">            {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> release</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">description:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "release branch"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">        ]</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        options</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">            filter</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> true</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">            completion_algorithm</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "substring"</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">            match_description</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> true</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">        }</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        fallback</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> true</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><code>fallback: true</code> keeps the custom results and continues to the next completion source, so custom completions can appear beside built-in file completion or command-wide completions. Parameter completers are filtered by default; command-wide and external completers are not, because they usually do their own filtering. Set <code>options.filter</code> explicitly if you need the other behavior.</p>
<p>The old global <code>background-completions</code> option has been removed. Completers normally run on a background worker. If a completer needs to own the terminal, such as one that launches <code>fzf</code> or <code>input list</code>, mark the completer command with <code>@interactive</code>:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">@interactive</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> pick-file</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">token</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">record</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    ls</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> get</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> to text</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> ^</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">fzf</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">query</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $token.text</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> lines</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> open-file</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">path</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">@</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">pick-file</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    open</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $path</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><p>When completing <code>open-file &lt;Tab&gt;</code>, <code>pick-file</code> runs inline on the line-editor thread with stdin and the terminal available. This blocks the editor while the picker is open, then returns the selected values as completion suggestions. Calling an <code>@interactive</code> completer directly is not the intended test path, because the completion engine supplies its inputs.</p>
<p>External completers are closures and cannot carry <code>@interactive</code> themselves. To make an external completer interactive, have the closure call an <code>@interactive</code> command:</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">@interactive</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> carapace-fzf</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">place</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">record</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">    carapace</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$place.command</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> first</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">nushell</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ...</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$place.command</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">    |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from json</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">    |</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> ^</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">fzf</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">    |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> lines</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.completions.external.completer</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">place</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">|</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">    carapace-fzf</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $place</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4>New completion tools</h4>
<p><code>commandline complete</code> gained tools for developing completers:</p>
<ul>
<li><code>commandline complete --input</code> returns the <code>{token, place, buffer}</code> record a completer would receive without running the completer.</li>
<li><code>commandline complete --detailed</code> returns suggestions in the custom-completer output format.</li>
<li><code>commandline complete --type directory|path|glob|command|variable|env-var</code> runs one built-in completion source, which is useful when composing Nushell's built-in completions with custom ones.</li>
</ul>
<div class="hint-container note">
<p class="hint-container-title">Note</p>
<p><code>--input</code> cannot be combined with <code>--detailed</code> or <code>--type</code>.</p>
</div>
<p>Some completion behavior changed as part of this unification:</p>
<ul>
<li>Parameter completers that fail now return no suggestions instead of unexpectedly falling back to the working directory.</li>
<li>Command-wide and external completers can return <code>null</code> to decline, allowing file completion or another source to answer.</li>
<li>Completion state is resolved at the cursor more accurately, including nested closures, aliases, multi-word command heads, flag values, cell paths, and empty argument slots.</li>
<li>Aliases resolve through to their completion command, including whether that command is interactive.</li>
<li>Malformed suggestions, styles, spans, or options are reported in the completion log without discarding unrelated valid suggestions.</li>
</ul>
<p>Common migrations:</p>
<p>| Previous form                             | New form                                                                                        |
|:</p>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-09-26T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #370</title>
    <id>https://www.nushell.sh/blog/2026-09-25-twin0370.html</id>
    <link href="https://www.nushell.sh/blog/2026-09-25-twin0370.html"/>
    <updated>2026-09-25T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Sunday, 2026-10-25, including PRs merged Friday, 2026-09-18 through Thursday, 2026-09-24.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19080" target="_blank" rel="noopener noreferrer">fixed lsp hover tooltip markdown (#19080)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19060" target="_blank" rel="noopener noreferrer">added --recursive flag to update cells to visit nested leaf values (#19060)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19059" target="_blank" rel="noopener noreferrer">fixed flatten to keep nested fields that collide with top-level columns (#19059)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19058" target="_blank" rel="noopener noreferrer">fixed default to accept cell paths for column arguments (#19058)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19057" target="_blank" rel="noopener noreferrer">bumped fff-search to 0.11.0 (#19057)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19055" target="_blank" rel="noopener noreferrer">reduced parser parse time by 30% - 50% (#19055)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19052" target="_blank" rel="noopener noreferrer">fixed engine to run every finally on the way out of nested try blocks, and unwind break/continue through them (#19052)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19049" target="_blank" rel="noopener noreferrer">made $nu.startup-time accurate and sped up config loading, plugin registry, and gstat (#19049)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19025" target="_blank" rel="noopener noreferrer">added the tui family of commands (#19025)</a></li>
</ul>
</li>
<li>
<p>@mrhard9090:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19078" target="_blank" rel="noopener noreferrer">fixed idx search to not cap matches at 200 per file (#19078)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19067" target="_blank" rel="noopener noreferrer">fixed rm to answer one --interactive prompt per key press on Windows (#19067)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19066" target="_blank" rel="noopener noreferrer">fixed table to keep markdown and restructured headers off the separator (#19066)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19065" target="_blank" rel="noopener noreferrer">fixed rm to skip . and .. glob matches on Windows (#19065)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19077" target="_blank" rel="noopener noreferrer">bumped reedline to db34d84 (#19077)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19047" target="_blank" rel="noopener noreferrer">fixed CI to run ready_for_review on the PR head, not on main (#19047)</a></li>
</ul>
</li>
<li>
<p>@mikehasa:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19064" target="_blank" rel="noopener noreferrer">fixed std/dt to correct datetime-diff day count when borrowing a month (#19064)</a></li>
</ul>
</li>
<li>
<p>@windlandneko:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19063" target="_blank" rel="noopener noreferrer">fixed parser to reject unexpected semicolons in list literals and patterns (#19063)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19054" target="_blank" rel="noopener noreferrer">made fixes for unified/completions in general (#19054)</a></li>
</ul>
</li>
<li>
<p>@LouisDeconinck:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19045" target="_blank" rel="noopener noreferrer">fixed table to not panic when the terminal is too narrow to draw (#19045)</a></li>
</ul>
</li>
<li>
<p>@surma:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19039" target="_blank" rel="noopener noreferrer">made save create parent directories with --force (#19039)</a></li>
</ul>
</li>
<li>
<p>@Dorumin:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18996" target="_blank" rel="noopener noreferrer">stopped going to tmp if --directory is specified (#18996)</a></li>
</ul>
</li>
<li>
<p>@rvhelden:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18738" target="_blank" rel="noopener noreferrer">added a nu-dap crate and nu --dap: a Debug Adapter Protocol server for Nushell (#18738)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19071" target="_blank" rel="noopener noreferrer">bumped serde-saphyr from 1.2.0 to 1.3.0 (#19071)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19070" target="_blank" rel="noopener noreferrer">bumped rstest from 0.26.1 to 0.27.0 (#19070)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19069" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.50.1 to 1.50.2 (#19069)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19068" target="_blank" rel="noopener noreferrer">bumped taiki-e/install-action from 2.87.12 to 2.87.17 (#19068)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18994" target="_blank" rel="noopener noreferrer">bumped aws-config from 1.10.0 to 1.12.0 (#18994)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Sunday, 2026-10-25, including PRs merged Friday, 2026-09-18 through Thursday, 2026-09-24.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19080" target="_blank" rel="noopener noreferrer">fixed lsp hover tooltip markdown (#19080)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19060" target="_blank" rel="noopener noreferrer">added --recursive flag to update cells to visit nested leaf values (#19060)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19059" target="_blank" rel="noopener noreferrer">fixed flatten to keep nested fields that collide with top-level columns (#19059)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19058" target="_blank" rel="noopener noreferrer">fixed default to accept cell paths for column arguments (#19058)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19057" target="_blank" rel="noopener noreferrer">bumped fff-search to 0.11.0 (#19057)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19055" target="_blank" rel="noopener noreferrer">reduced parser parse time by 30% - 50% (#19055)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19052" target="_blank" rel="noopener noreferrer">fixed engine to run every finally on the way out of nested try blocks, and unwind break/continue through them (#19052)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19049" target="_blank" rel="noopener noreferrer">made $nu.startup-time accurate and sped up config loading, plugin registry, and gstat (#19049)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19025" target="_blank" rel="noopener noreferrer">added the tui family of commands (#19025)</a></li>
</ul>
</li>
<li>
<p>@mrhard9090:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19078" target="_blank" rel="noopener noreferrer">fixed idx search to not cap matches at 200 per file (#19078)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19067" target="_blank" rel="noopener noreferrer">fixed rm to answer one --interactive prompt per key press on Windows (#19067)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19066" target="_blank" rel="noopener noreferrer">fixed table to keep markdown and restructured headers off the separator (#19066)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19065" target="_blank" rel="noopener noreferrer">fixed rm to skip . and .. glob matches on Windows (#19065)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19077" target="_blank" rel="noopener noreferrer">bumped reedline to db34d84 (#19077)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19047" target="_blank" rel="noopener noreferrer">fixed CI to run ready_for_review on the PR head, not on main (#19047)</a></li>
</ul>
</li>
<li>
<p>@mikehasa:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19064" target="_blank" rel="noopener noreferrer">fixed std/dt to correct datetime-diff day count when borrowing a month (#19064)</a></li>
</ul>
</li>
<li>
<p>@windlandneko:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19063" target="_blank" rel="noopener noreferrer">fixed parser to reject unexpected semicolons in list literals and patterns (#19063)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19054" target="_blank" rel="noopener noreferrer">made fixes for unified/completions in general (#19054)</a></li>
</ul>
</li>
<li>
<p>@LouisDeconinck:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19045" target="_blank" rel="noopener noreferrer">fixed table to not panic when the terminal is too narrow to draw (#19045)</a></li>
</ul>
</li>
<li>
<p>@surma:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19039" target="_blank" rel="noopener noreferrer">made save create parent directories with --force (#19039)</a></li>
</ul>
</li>
<li>
<p>@Dorumin:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18996" target="_blank" rel="noopener noreferrer">stopped going to tmp if --directory is specified (#18996)</a></li>
</ul>
</li>
<li>
<p>@rvhelden:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18738" target="_blank" rel="noopener noreferrer">added a nu-dap crate and nu --dap: a Debug Adapter Protocol server for Nushell (#18738)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19071" target="_blank" rel="noopener noreferrer">bumped serde-saphyr from 1.2.0 to 1.3.0 (#19071)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19070" target="_blank" rel="noopener noreferrer">bumped rstest from 0.26.1 to 0.27.0 (#19070)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19069" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.50.1 to 1.50.2 (#19069)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19068" target="_blank" rel="noopener noreferrer">bumped taiki-e/install-action from 2.87.12 to 2.87.17 (#19068)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18994" target="_blank" rel="noopener noreferrer">bumped aws-config from 1.10.0 to 1.12.0 (#18994)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@shreeve:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1226" target="_blank" rel="noopener noreferrer">fixed engine so Up and Down report whether they moved anything (#1226)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1209" target="_blank" rel="noopener noreferrer">added feat to let a menu close at the end of the word it was opened for (#1209)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1225" target="_blank" rel="noopener noreferrer">refactored editor to give paste-after the same shape as paste-before (#1225)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1223" target="_blank" rel="noopener noreferrer">dropped fd-lock, itertools, thiserror and unicase dependencies (#1223)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1222" target="_blank" rel="noopener noreferrer">changed typos to v1 in CI (#1222)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1214" target="_blank" rel="noopener noreferrer">switched between edit modes with one SwitchMode event (#1214)</a></li>
</ul>
</li>
<li>
<p>@bhouse-nexthop:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1206" target="_blank" rel="noopener noreferrer">fixed painter to trust the measured cursor row over a short terminal size (#1206)</a></li>
</ul>
</li>
</ul>
<h2>VSCode Extension</h2>
<ul>
<li>@fdncred:
<ul>
<li><a href="https://github.com/nushell/vscode-nushell-lang/pull/240" target="_blank" rel="noopener noreferrer">fixed badges in readme (#240)</a></li>
<li><a href="https://github.com/nushell/vscode-nushell-lang/pull/239" target="_blank" rel="noopener noreferrer">got ready for a new release 2.0.6 (#239)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1282" target="_blank" rel="noopener noreferrer">fixed background task with module usage (#1282)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1281" target="_blank" rel="noopener noreferrer">updated oh-my.nu (#1281)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>@NotTheDr01ds:
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2245" target="_blank" rel="noopener noreferrer">wrote TWiN 369 (#2245)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>
<p>@abrauninger:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/227" target="_blank" rel="noopener noreferrer">fixed several formatting bugs that break valid code (#227)</a></li>
</ul>
</li>
<li>
<p>@dannyfritz:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/222" target="_blank" rel="noopener noreferrer">added flag for --shebang (#222)</a></li>
</ul>
</li>
</ul>
<h2>nushell-ghsa-7pxc-fr7f-7m25</h2>
<ul>
<li>@Dheebz:
<ul>
<li><a href="https://github.com/nushell/nushell-ghsa-7pxc-fr7f-7m25/pull/1" target="_blank" rel="noopener noreferrer">fixed to require absolute vendor autoload paths (#1)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-09-25T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #369</title>
    <id>https://www.nushell.sh/blog/2026-09-18-twin0369.html</id>
    <link href="https://www.nushell.sh/blog/2026-09-18-twin0369.html"/>
    <updated>2026-09-18T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Thursday, 2026-09-17, including PRs merged Friday, 2026-09-11 through Thursday, 2026-09-17.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19043" target="_blank" rel="noopener noreferrer">forwarded Menu::settings through SourcedMenu (#19043)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19042" target="_blank" rel="noopener noreferrer">bumped reedline to e0f1c0b (#19042)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19013" target="_blank" rel="noopener noreferrer">bumped reedline to 436f17b (#19013)</a></li>
</ul>
</li>
<li>
<p>@LouisDeconinck:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19041" target="_blank" rel="noopener noreferrer">parsed headerless tables row by row (#19041)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19040" target="_blank" rel="noopener noreferrer">bumped uu_* crates to 0.12.0 (#19040)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19034" target="_blank" rel="noopener noreferrer">updated some deps (#19034)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19026" target="_blank" rel="noopener noreferrer">updated rustls &amp; friends (#19026)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19007" target="_blank" rel="noopener noreferrer">fixed nested table after wrapping/truncating changes (#19007)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18967" target="_blank" rel="noopener noreferrer">added IR-shaped const evaluation for run_const (AST migration phase 2) to the engine (#18967)</a></li>
</ul>
</li>
<li>
<p>@KaiSforza:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19038" target="_blank" rel="noopener noreferrer">scripts/nix: updated the flake lock (#19038)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19037" target="_blank" rel="noopener noreferrer">allowed no text value in error make (#19037)</a></li>
</ul>
</li>
<li>
<p>@sebaschi:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19027" target="_blank" rel="noopener noreferrer">added sha512 subcommand to hash (#19027)</a></li>
</ul>
</li>
<li>
<p>@Developer1010x:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19024" target="_blank" rel="noopener noreferrer">put a space after the colon on a rest parameter (view source) (#19024)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19023" target="_blank" rel="noopener noreferrer">corrected mkdir --verbose example output (#19023)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19017" target="_blank" rel="noopener noreferrer">fixed mkdir to not report existing directory as created in --verbose (#19017)</a></li>
</ul>
</li>
<li>
<p>@Jorge-Polanco-Roque:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19021" target="_blank" rel="noopener noreferrer">added --fail-if-exists flag to mkdir to error on existing directory (#19021)</a></li>
</ul>
</li>
<li>
<p>@Dheebz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19012" target="_blank" rel="noopener noreferrer">used stack config for commandline completions (#19012)</a></li>
</ul>
</li>
<li>
<p>@neveroNiwe:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18971" target="_blank" rel="noopener noreferrer">added structured context support to std/log (#18971)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19031" target="_blank" rel="noopener noreferrer">bumped tabled from 0.21.0 to 0.22.0 (#19031)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19030" target="_blank" rel="noopener noreferrer">bumped dirs from 6.0.0 to 7.0.0 (#19030)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19029" target="_blank" rel="noopener noreferrer">bumped actions-rust-lang/setup-rust-toolchain from 1.17.0 to 2.0.0 (#19029)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19028" target="_blank" rel="noopener noreferrer">bumped taiki-e/install-action from 2.87.7 to 2.87.12 (#19028)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18907" target="_blank" rel="noopener noreferrer">bumped tango-bench from 0.7.2 to 0.8.0 (#18907)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Thursday, 2026-09-17, including PRs merged Friday, 2026-09-11 through Thursday, 2026-09-17.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19043" target="_blank" rel="noopener noreferrer">forwarded Menu::settings through SourcedMenu (#19043)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19042" target="_blank" rel="noopener noreferrer">bumped reedline to e0f1c0b (#19042)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19013" target="_blank" rel="noopener noreferrer">bumped reedline to 436f17b (#19013)</a></li>
</ul>
</li>
<li>
<p>@LouisDeconinck:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19041" target="_blank" rel="noopener noreferrer">parsed headerless tables row by row (#19041)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19040" target="_blank" rel="noopener noreferrer">bumped uu_* crates to 0.12.0 (#19040)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19034" target="_blank" rel="noopener noreferrer">updated some deps (#19034)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19026" target="_blank" rel="noopener noreferrer">updated rustls &amp; friends (#19026)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19007" target="_blank" rel="noopener noreferrer">fixed nested table after wrapping/truncating changes (#19007)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18967" target="_blank" rel="noopener noreferrer">added IR-shaped const evaluation for run_const (AST migration phase 2) to the engine (#18967)</a></li>
</ul>
</li>
<li>
<p>@KaiSforza:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19038" target="_blank" rel="noopener noreferrer">scripts/nix: updated the flake lock (#19038)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19037" target="_blank" rel="noopener noreferrer">allowed no text value in error make (#19037)</a></li>
</ul>
</li>
<li>
<p>@sebaschi:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19027" target="_blank" rel="noopener noreferrer">added sha512 subcommand to hash (#19027)</a></li>
</ul>
</li>
<li>
<p>@Developer1010x:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19024" target="_blank" rel="noopener noreferrer">put a space after the colon on a rest parameter (view source) (#19024)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19023" target="_blank" rel="noopener noreferrer">corrected mkdir --verbose example output (#19023)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19017" target="_blank" rel="noopener noreferrer">fixed mkdir to not report existing directory as created in --verbose (#19017)</a></li>
</ul>
</li>
<li>
<p>@Jorge-Polanco-Roque:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19021" target="_blank" rel="noopener noreferrer">added --fail-if-exists flag to mkdir to error on existing directory (#19021)</a></li>
</ul>
</li>
<li>
<p>@Dheebz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19012" target="_blank" rel="noopener noreferrer">used stack config for commandline completions (#19012)</a></li>
</ul>
</li>
<li>
<p>@neveroNiwe:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18971" target="_blank" rel="noopener noreferrer">added structured context support to std/log (#18971)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19031" target="_blank" rel="noopener noreferrer">bumped tabled from 0.21.0 to 0.22.0 (#19031)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19030" target="_blank" rel="noopener noreferrer">bumped dirs from 6.0.0 to 7.0.0 (#19030)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19029" target="_blank" rel="noopener noreferrer">bumped actions-rust-lang/setup-rust-toolchain from 1.17.0 to 2.0.0 (#19029)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/19028" target="_blank" rel="noopener noreferrer">bumped taiki-e/install-action from 2.87.7 to 2.87.12 (#19028)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18907" target="_blank" rel="noopener noreferrer">bumped tango-bench from 0.7.2 to 0.8.0 (#18907)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1220" target="_blank" rel="noopener noreferrer">exported MenuSettings so Menu can be implemented downstream (#1220)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1219" target="_blank" rel="noopener noreferrer">took the TERM=dumb answer from the painter (#1219)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1218" target="_blank" rel="noopener noreferrer">returned the prompt height and index at the call site (#1218)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1217" target="_blank" rel="noopener noreferrer">read skip_buffer_lines through its own range (#1217)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1216" target="_blank" rel="noopener noreferrer">dropped the dead panic in FileBackedHistory::default (#1216)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1215" target="_blank" rel="noopener noreferrer">required Menu::settings instead of panicking in a default (#1215)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1213" target="_blank" rel="noopener noreferrer">recorded a resize as a cursor row, not a prompt row (#1213)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1211" target="_blank" rel="noopener noreferrer">kept the right prompt through the exit erase (#1211)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1197" target="_blank" rel="noopener noreferrer">documented the default keybindings for all three edit modes (#1197)</a></li>
</ul>
</li>
<li>
<p>@shreeve:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1210" target="_blank" rel="noopener noreferrer">kept the menu accept rule in one place (#1210)</a></li>
</ul>
</li>
<li>
<p>@okuuva:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1208" target="_blank" rel="noopener noreferrer">let no-op cursor moves fall through (#1208)</a></li>
</ul>
</li>
<li>
<p>@catlover-bot:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1183" target="_blank" rel="noopener noreferrer">respected TERM=dumb for cursor position queries (#1183)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@pimgit0:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2244" target="_blank" rel="noopener noreferrer">included $ans in Special Variables (#2244)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2243" target="_blank" rel="noopener noreferrer">published TWiN 368 (#2243)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2242" target="_blank" rel="noopener noreferrer">bumped js-yaml from 3.15.1 to 3.15.2 (#2242)</a></li>
</ul>
</li>
</ul>
<h2>nushell-ghsa-x2jj-6xxp-26q6</h2>
<ul>
<li>@Dheebz:
<ul>
<li><a href="https://github.com/nushell/nushell-ghsa-x2jj-6xxp-26q6/pull/1" target="_blank" rel="noopener noreferrer">isolated plugin local sockets (#1)</a></li>
</ul>
</li>
</ul>
<h2>Tree-sitter</h2>
<ul>
<li>@app/dependabot:
<ul>
<li><a href="https://github.com/nushell/tree-sitter-nu/pull/259" target="_blank" rel="noopener noreferrer">bumped js-yaml from 4.3.1 to 4.3.2 (#259)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-09-18T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #368</title>
    <id>https://www.nushell.sh/blog/2026-09-11-twin0368.html</id>
    <link href="https://www.nushell.sh/blog/2026-09-11-twin0368.html"/>
    <updated>2026-09-11T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Wednesday, 2026-09-16, including PRs merged Friday, 2026-09-04 through Thursday, 2026-09-10.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@ronisbr:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19010" target="_blank" rel="noopener noreferrer">Added support for escaped spaces inside double quotes (#19010)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19008" target="_blank" rel="noopener noreferrer">Reverted &quot;mkdir errors on already-created dir&quot; (#19008)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18979" target="_blank" rel="noopener noreferrer">Fixed table truncating vs wrapping (#18979)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18968" target="_blank" rel="noopener noreferrer">Bumped rust toolchain to 1.96.1 (#18968)</a></li>
</ul>
</li>
<li>
<p>@pickx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19006" target="_blank" rel="noopener noreferrer">Added error to mkdir for already-created dir (#19006)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19005" target="_blank" rel="noopener noreferrer">Replaced <code>to yaml</code> <code>--compact-list-indent</code> with <code>--list-indent</code> (#19005)</a></li>
</ul>
</li>
<li>
<p>@zozo123:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18999" target="_blank" rel="noopener noreferrer">Fixed par-each deadlock when chaining same-size thread pools (#18999)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18810" target="_blank" rel="noopener noreferrer">Tested Incredibuild self-hosted runner in CI (#18810)</a></li>
</ul>
</li>
<li>
<p>@mkatychev:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18988" target="_blank" rel="noopener noreferrer">Added socket feature flag to handle <code>--no-default-features</code> correctly (#18988)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18986" target="_blank" rel="noopener noreferrer">Bumped reedline to 06bf606 (#18986)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18985" target="_blank" rel="noopener noreferrer">Bumped rust-overlay so the 1.96.1 toolchain resolves (#18985)</a></li>
</ul>
</li>
<li>
<p>@sidsri14:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18976" target="_blank" rel="noopener noreferrer">Propagated error stream values in length, columns, and is-empty (#18976)</a></li>
</ul>
</li>
<li>
<p>@user93390:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18975" target="_blank" rel="noopener noreferrer">Fixed unnecessary string allocations in style_computer.rs (#18975)</a></li>
</ul>
</li>
<li>
<p>@nos1dot618:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18972" target="_blank" rel="noopener noreferrer">Added conditional (if, match, where) tutorials (#18972)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18791" target="_blank" rel="noopener noreferrer">Unified completions (#18791)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18992" target="_blank" rel="noopener noreferrer">Bumped the uutils group with 8 updates (#18992)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18991" target="_blank" rel="noopener noreferrer">Bumped crate-ci/typos from 1.50.0 to 1.50.1 (#18991)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18990" target="_blank" rel="noopener noreferrer">Bumped taiki-e/install-action from 2.86.6 to 2.87.7 (#18990)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Wednesday, 2026-09-16, including PRs merged Friday, 2026-09-04 through Thursday, 2026-09-10.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@ronisbr:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19010" target="_blank" rel="noopener noreferrer">Added support for escaped spaces inside double quotes (#19010)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19008" target="_blank" rel="noopener noreferrer">Reverted &quot;mkdir errors on already-created dir&quot; (#19008)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18979" target="_blank" rel="noopener noreferrer">Fixed table truncating vs wrapping (#18979)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18968" target="_blank" rel="noopener noreferrer">Bumped rust toolchain to 1.96.1 (#18968)</a></li>
</ul>
</li>
<li>
<p>@pickx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19006" target="_blank" rel="noopener noreferrer">Added error to mkdir for already-created dir (#19006)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/19005" target="_blank" rel="noopener noreferrer">Replaced <code>to yaml</code> <code>--compact-list-indent</code> with <code>--list-indent</code> (#19005)</a></li>
</ul>
</li>
<li>
<p>@zozo123:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18999" target="_blank" rel="noopener noreferrer">Fixed par-each deadlock when chaining same-size thread pools (#18999)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18810" target="_blank" rel="noopener noreferrer">Tested Incredibuild self-hosted runner in CI (#18810)</a></li>
</ul>
</li>
<li>
<p>@mkatychev:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18988" target="_blank" rel="noopener noreferrer">Added socket feature flag to handle <code>--no-default-features</code> correctly (#18988)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18986" target="_blank" rel="noopener noreferrer">Bumped reedline to 06bf606 (#18986)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18985" target="_blank" rel="noopener noreferrer">Bumped rust-overlay so the 1.96.1 toolchain resolves (#18985)</a></li>
</ul>
</li>
<li>
<p>@sidsri14:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18976" target="_blank" rel="noopener noreferrer">Propagated error stream values in length, columns, and is-empty (#18976)</a></li>
</ul>
</li>
<li>
<p>@user93390:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18975" target="_blank" rel="noopener noreferrer">Fixed unnecessary string allocations in style_computer.rs (#18975)</a></li>
</ul>
</li>
<li>
<p>@nos1dot618:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18972" target="_blank" rel="noopener noreferrer">Added conditional (if, match, where) tutorials (#18972)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18791" target="_blank" rel="noopener noreferrer">Unified completions (#18791)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18992" target="_blank" rel="noopener noreferrer">Bumped the uutils group with 8 updates (#18992)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18991" target="_blank" rel="noopener noreferrer">Bumped crate-ci/typos from 1.50.0 to 1.50.1 (#18991)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18990" target="_blank" rel="noopener noreferrer">Bumped taiki-e/install-action from 2.86.6 to 2.87.7 (#18990)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1207" target="_blank" rel="noopener noreferrer">Read an unbound <code>Alt-&lt;char&gt;</code> as Esc then <code>&lt;char&gt;</code> (#1207)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1203" target="_blank" rel="noopener noreferrer">Added MenuAccept to take a completion without submitting (#1203)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1201" target="_blank" rel="noopener noreferrer">Re-used a bottom-row prompt if the cursor returns unmoved (#1201)</a></li>
</ul>
</li>
<li>
<p>@Blfrg:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1202" target="_blank" rel="noopener noreferrer">Prevented read_line failure when cursor-position query times out at prompt init (#1202)</a></li>
</ul>
</li>
<li>
<p>@Jiogo18:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1200" target="_blank" rel="noopener noreferrer">Added access to the command line selection (#1200)</a></li>
</ul>
</li>
<li>
<p>@shreeve:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1175" target="_blank" rel="noopener noreferrer">Prevented a menu with no suggestions from swallowing Enter (#1175)</a></li>
</ul>
</li>
<li>
<p>@catlover-bot:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1166" target="_blank" rel="noopener noreferrer">Made copy selection report failure without selection (#1166)</a></li>
</ul>
</li>
<li>
<p>@sholderbach:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/778" target="_blank" rel="noopener noreferrer">Made filtering by <code>cwd</code> case sensitive (#778)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2241" target="_blank" rel="noopener noreferrer">Added <code>Command Type</code> section for command docs (#2241)</a></li>
</ul>
</li>
<li>
<p>@wahidrizka:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2239" target="_blank" rel="noopener noreferrer">Fixed duplicated words (#2239)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2237" target="_blank" rel="noopener noreferrer">Fixed broken heading anchors (#2237)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2236" target="_blank" rel="noopener noreferrer">Fixed a/an article errors (#2236)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2238" target="_blank" rel="noopener noreferrer">Published TWiN 367 (#2238)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-09-11T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #367</title>
    <id>https://www.nushell.sh/blog/2026-09-04-twin0367.html</id>
    <link href="https://www.nushell.sh/blog/2026-09-04-twin0367.html"/>
    <updated>2026-09-04T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-09-04, including PRs merged Friday, 2026-08-28 through Thursday, 2026-09-03.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cuishuang:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18961" target="_blank" rel="noopener noreferrer">reported file read failures from --ide-check (#18961)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18959" target="_blank" rel="noopener noreferrer">bumped reedline to a8e9364 (#18959)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18950" target="_blank" rel="noopener noreferrer">invalidated cache when config changes (#18950)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18948" target="_blank" rel="noopener noreferrer">fixed parsing performance regression (#18948)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18946" target="_blank" rel="noopener noreferrer">updated fff-search to 0.10.6 (#18946)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18945" target="_blank" rel="noopener noreferrer">updated proc_macro_error to 3 and other dependencies (#18945)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18941" target="_blank" rel="noopener noreferrer">fixed tests: resolved &quot;..&quot; in completion test <code>WORKSPACE_ROOT</code> path (#18941)</a></li>
</ul>
</li>
<li>
<p>@luangucun:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18958" target="_blank" rel="noopener noreferrer">preserved errors instead of silently stopping in <code>each while</code> (#18958)</a></li>
</ul>
</li>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18952" target="_blank" rel="noopener noreferrer">set default bind host to 127.0.0.1 (MCP) (#18952)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18947" target="_blank" rel="noopener noreferrer">propagated <code>local-socket</code> feature into <code>nu-plugin-test-support</code> (#18947)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18910" target="_blank" rel="noopener noreferrer">removed most <code>fs</code> helpers from <code>nu-test-support</code> (#18910)</a></li>
</ul>
</li>
<li>
<p>@magnify035:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18937" target="_blank" rel="noopener noreferrer">updated default color mappings in <code>ls</code> (#18937)</a></li>
</ul>
</li>
<li>
<p>@nos1dot618:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18927" target="_blank" rel="noopener noreferrer">added custom commands and pipeline input tutorials (#18927)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18903" target="_blank" rel="noopener noreferrer">added reedline shortcuts tutorial and documented <code>$env</code> (#18903)</a></li>
</ul>
</li>
<li>
<p>@i-api:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18925" target="_blank" rel="noopener noreferrer">added a specification of the NUON format (#18925)</a></li>
</ul>
</li>
<li>
<p>@aron-intframe:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18924" target="_blank" rel="noopener noreferrer">fixed <code>format date</code> <code>%r</code> when locale's am/pm fallback also carries <code>%O</code> (#18924)</a></li>
</ul>
</li>
<li>
<p>@Mrfiregem:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18922" target="_blank" rel="noopener noreferrer">included UTC offset in <code>date list-timezone</code> output (#18922)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18844" target="_blank" rel="noopener noreferrer">let more commands use row conditions (#18844)</a></li>
</ul>
</li>
<li>
<p>@catlover-bot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18899" target="_blank" rel="noopener noreferrer">stripped ANSI from redirected CLI help (#18899)</a></li>
</ul>
</li>
<li>
<p>@fly1d:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18897" target="_blank" rel="noopener noreferrer">stopped parsing embedded float tokens in YAML (#18897)</a></li>
</ul>
</li>
<li>
<p>@dilr:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18893" target="_blank" rel="noopener noreferrer">documented behavior of <code>each</code> for more types of inputs (#18893)</a></li>
</ul>
</li>
<li>
<p>@bobisageek:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18867" target="_blank" rel="noopener noreferrer">fixed <code>keybindings listen</code> - ignore KeyEventState when checking for Esc (#18867)</a></li>
</ul>
</li>
<li>
<p>@Dheebz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18837" target="_blank" rel="noopener noreferrer">fixed parsing of brace expressions in external calls (#18837)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18832" target="_blank" rel="noopener noreferrer">normalized PATH when refreshing ENV_CONVERSIONS (#18832)</a></li>
</ul>
</li>
<li>
<p>@hexbinoct:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18811" target="_blank" rel="noopener noreferrer">stopped printing stray blank line when try with catch or finally collects an external (#18811)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18957" target="_blank" rel="noopener noreferrer">bumped ureq from 3.3.0 to 3.4.0 (#18957)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18955" target="_blank" rel="noopener noreferrer">bumped hustcer/milestone-action from 3.1 to 3.2 (#18955)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18954" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.48.0 to 1.50.0 (#18954)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18906" target="_blank" rel="noopener noreferrer">bumped uuid from 1.24.0 to 1.25.0 (#18906)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18904" target="_blank" rel="noopener noreferrer">bumped taiki-e/install-action from 2.85.11 to 2.86.6 (#18904)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-09-04, including PRs merged Friday, 2026-08-28 through Thursday, 2026-09-03.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cuishuang:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18961" target="_blank" rel="noopener noreferrer">reported file read failures from --ide-check (#18961)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18959" target="_blank" rel="noopener noreferrer">bumped reedline to a8e9364 (#18959)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18950" target="_blank" rel="noopener noreferrer">invalidated cache when config changes (#18950)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18948" target="_blank" rel="noopener noreferrer">fixed parsing performance regression (#18948)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18946" target="_blank" rel="noopener noreferrer">updated fff-search to 0.10.6 (#18946)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18945" target="_blank" rel="noopener noreferrer">updated proc_macro_error to 3 and other dependencies (#18945)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18941" target="_blank" rel="noopener noreferrer">fixed tests: resolved &quot;..&quot; in completion test <code>WORKSPACE_ROOT</code> path (#18941)</a></li>
</ul>
</li>
<li>
<p>@luangucun:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18958" target="_blank" rel="noopener noreferrer">preserved errors instead of silently stopping in <code>each while</code> (#18958)</a></li>
</ul>
</li>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18952" target="_blank" rel="noopener noreferrer">set default bind host to 127.0.0.1 (MCP) (#18952)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18947" target="_blank" rel="noopener noreferrer">propagated <code>local-socket</code> feature into <code>nu-plugin-test-support</code> (#18947)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18910" target="_blank" rel="noopener noreferrer">removed most <code>fs</code> helpers from <code>nu-test-support</code> (#18910)</a></li>
</ul>
</li>
<li>
<p>@magnify035:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18937" target="_blank" rel="noopener noreferrer">updated default color mappings in <code>ls</code> (#18937)</a></li>
</ul>
</li>
<li>
<p>@nos1dot618:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18927" target="_blank" rel="noopener noreferrer">added custom commands and pipeline input tutorials (#18927)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18903" target="_blank" rel="noopener noreferrer">added reedline shortcuts tutorial and documented <code>$env</code> (#18903)</a></li>
</ul>
</li>
<li>
<p>@i-api:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18925" target="_blank" rel="noopener noreferrer">added a specification of the NUON format (#18925)</a></li>
</ul>
</li>
<li>
<p>@aron-intframe:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18924" target="_blank" rel="noopener noreferrer">fixed <code>format date</code> <code>%r</code> when locale's am/pm fallback also carries <code>%O</code> (#18924)</a></li>
</ul>
</li>
<li>
<p>@Mrfiregem:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18922" target="_blank" rel="noopener noreferrer">included UTC offset in <code>date list-timezone</code> output (#18922)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18844" target="_blank" rel="noopener noreferrer">let more commands use row conditions (#18844)</a></li>
</ul>
</li>
<li>
<p>@catlover-bot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18899" target="_blank" rel="noopener noreferrer">stripped ANSI from redirected CLI help (#18899)</a></li>
</ul>
</li>
<li>
<p>@fly1d:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18897" target="_blank" rel="noopener noreferrer">stopped parsing embedded float tokens in YAML (#18897)</a></li>
</ul>
</li>
<li>
<p>@dilr:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18893" target="_blank" rel="noopener noreferrer">documented behavior of <code>each</code> for more types of inputs (#18893)</a></li>
</ul>
</li>
<li>
<p>@bobisageek:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18867" target="_blank" rel="noopener noreferrer">fixed <code>keybindings listen</code> - ignore KeyEventState when checking for Esc (#18867)</a></li>
</ul>
</li>
<li>
<p>@Dheebz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18837" target="_blank" rel="noopener noreferrer">fixed parsing of brace expressions in external calls (#18837)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18832" target="_blank" rel="noopener noreferrer">normalized PATH when refreshing ENV_CONVERSIONS (#18832)</a></li>
</ul>
</li>
<li>
<p>@hexbinoct:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18811" target="_blank" rel="noopener noreferrer">stopped printing stray blank line when try with catch or finally collects an external (#18811)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18957" target="_blank" rel="noopener noreferrer">bumped ureq from 3.3.0 to 3.4.0 (#18957)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18955" target="_blank" rel="noopener noreferrer">bumped hustcer/milestone-action from 3.1 to 3.2 (#18955)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18954" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.48.0 to 1.50.0 (#18954)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18906" target="_blank" rel="noopener noreferrer">bumped uuid from 1.24.0 to 1.25.0 (#18906)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18904" target="_blank" rel="noopener noreferrer">bumped taiki-e/install-action from 2.85.11 to 2.86.6 (#18904)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@nos1dot618:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2234" target="_blank" rel="noopener noreferrer">referred to bashisms tutorial in blog (#2234)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2233" target="_blank" rel="noopener noreferrer">wrote TWiN 366 (#2233)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2235" target="_blank" rel="noopener noreferrer">bumped browserslist from 4.28.4 to 4.28.8 (#2235)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>@Sha1rholder:
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/216" target="_blank" rel="noopener noreferrer">upgraded flake and CI (#216)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@kazu:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/171" target="_blank" rel="noopener noreferrer">added nu_plugin_zstdsep to README (#171)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1198" target="_blank" rel="noopener noreferrer">gave each modal state its own default indicator (#1198)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1193" target="_blank" rel="noopener noreferrer">rebuilt a backward extend through put_cursor (#1193)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1192" target="_blank" rel="noopener noreferrer">counted the resting block caret as end of buffer (#1192)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1191" target="_blank" rel="noopener noreferrer">resolved the cursor's row from the wrap walk (#1191)</a></li>
</ul>
</li>
<li>
<p>@eitsupi:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1135" target="_blank" rel="noopener noreferrer">added opt-in automatic pair insertion, with a highlighter veto (#1135)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-09-04T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #366</title>
    <id>https://www.nushell.sh/blog/2026-08-28-twin0366.html</id>
    <link href="https://www.nushell.sh/blog/2026-08-28-twin0366.html"/>
    <updated>2026-08-28T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-08-28, including PRs merged Friday, 2026-08-21 through Thursday, 2026-08-27.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@aron-intframe:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18918" target="_blank" rel="noopener noreferrer">fixed <code>format date</code> to render locales whose format carries %E or %O (#18918)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18901" target="_blank" rel="noopener noreferrer">fixed inferring string from <code>semver | into string</code> (#18901)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18881" target="_blank" rel="noopener noreferrer">fixed completions to keep the REPL usable when a completer runs <code>fzf</code> or <code>input list</code> (#18881)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18872" target="_blank" rel="noopener noreferrer">fixed <code>lines --skip-empty</code> for string and byte stream input (#18872)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18871" target="_blank" rel="noopener noreferrer">fixed unmatched <code>{</code> at end of <code>format pattern</code> and <code>parse</code> patterns (#18871)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18841" target="_blank" rel="noopener noreferrer">improved performance by stopping parse-time-loading modules and extra cwd walks while typing <code>use std/</code> (#18841)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18813" target="_blank" rel="noopener noreferrer">reduced ast dependency for ir calls - phase 1 (#18813)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18796" target="_blank" rel="noopener noreferrer">made named parameters able to pass null or omit parameter entirely for easier shadowing (#18796)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18892" target="_blank" rel="noopener noreferrer">chore(reedline): bumped reedline fc19b91 (#18892)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18890" target="_blank" rel="noopener noreferrer">chore(reedline): bumped reedline to 73b928a (#18890)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18878" target="_blank" rel="noopener noreferrer">chore(reedline): bumped reedline to e692224 (#18878)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18870" target="_blank" rel="noopener noreferrer">fixed config to merge keybindings by name and key instead of name alone (#18870)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18764" target="_blank" rel="noopener noreferrer">feat(completions): added a <code>background-completions</code> opt-out (#18764)</a></li>
</ul>
</li>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18887" target="_blank" rel="noopener noreferrer">added Polars date range (#18887)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18875" target="_blank" rel="noopener noreferrer">updated h2 due to RUSTSEC-2026-0258 (#18875)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18866" target="_blank" rel="noopener noreferrer">upgraded to polars 0.55.2 (#18866)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18885" target="_blank" rel="noopener noreferrer">bumped patch version after release (#18885)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18884" target="_blank" rel="noopener noreferrer">prepared patch release (#18884)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18883" target="_blank" rel="noopener noreferrer">fixed test by removing <code>printf</code> calls (#18883)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18882" target="_blank" rel="noopener noreferrer">allowed float value strings with commas in <code>into float</code> (#18882)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18851" target="_blank" rel="noopener noreferrer">allowed raw <code>null</code> as a value for <code>to yaml --non-roundtrip</code> (#18851)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18868" target="_blank" rel="noopener noreferrer">applied completer fixes (#18868)</a></li>
</ul>
</li>
<li>
<p>@pickx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18728" target="_blank" rel="noopener noreferrer">rounded up 2 fixes for &quot;did you mean?&quot; (#18728)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-08-28, including PRs merged Friday, 2026-08-21 through Thursday, 2026-08-27.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@aron-intframe:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18918" target="_blank" rel="noopener noreferrer">fixed <code>format date</code> to render locales whose format carries %E or %O (#18918)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18901" target="_blank" rel="noopener noreferrer">fixed inferring string from <code>semver | into string</code> (#18901)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18881" target="_blank" rel="noopener noreferrer">fixed completions to keep the REPL usable when a completer runs <code>fzf</code> or <code>input list</code> (#18881)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18872" target="_blank" rel="noopener noreferrer">fixed <code>lines --skip-empty</code> for string and byte stream input (#18872)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18871" target="_blank" rel="noopener noreferrer">fixed unmatched <code>{</code> at end of <code>format pattern</code> and <code>parse</code> patterns (#18871)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18841" target="_blank" rel="noopener noreferrer">improved performance by stopping parse-time-loading modules and extra cwd walks while typing <code>use std/</code> (#18841)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18813" target="_blank" rel="noopener noreferrer">reduced ast dependency for ir calls - phase 1 (#18813)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18796" target="_blank" rel="noopener noreferrer">made named parameters able to pass null or omit parameter entirely for easier shadowing (#18796)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18892" target="_blank" rel="noopener noreferrer">chore(reedline): bumped reedline fc19b91 (#18892)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18890" target="_blank" rel="noopener noreferrer">chore(reedline): bumped reedline to 73b928a (#18890)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18878" target="_blank" rel="noopener noreferrer">chore(reedline): bumped reedline to e692224 (#18878)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18870" target="_blank" rel="noopener noreferrer">fixed config to merge keybindings by name and key instead of name alone (#18870)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18764" target="_blank" rel="noopener noreferrer">feat(completions): added a <code>background-completions</code> opt-out (#18764)</a></li>
</ul>
</li>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18887" target="_blank" rel="noopener noreferrer">added Polars date range (#18887)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18875" target="_blank" rel="noopener noreferrer">updated h2 due to RUSTSEC-2026-0258 (#18875)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18866" target="_blank" rel="noopener noreferrer">upgraded to polars 0.55.2 (#18866)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18885" target="_blank" rel="noopener noreferrer">bumped patch version after release (#18885)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18884" target="_blank" rel="noopener noreferrer">prepared patch release (#18884)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18883" target="_blank" rel="noopener noreferrer">fixed test by removing <code>printf</code> calls (#18883)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18882" target="_blank" rel="noopener noreferrer">allowed float value strings with commas in <code>into float</code> (#18882)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18851" target="_blank" rel="noopener noreferrer">allowed raw <code>null</code> as a value for <code>to yaml --non-roundtrip</code> (#18851)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18868" target="_blank" rel="noopener noreferrer">applied completer fixes (#18868)</a></li>
</ul>
</li>
<li>
<p>@pickx:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18728" target="_blank" rel="noopener noreferrer">rounded up 2 fixes for &quot;did you mean?&quot; (#18728)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1184" target="_blank" rel="noopener noreferrer">bumped minor version (#1184)</a></li>
</ul>
</li>
<li>
<p>@catlover-bot:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1169" target="_blank" rel="noopener noreferrer">fixed vi replace with v (#1169)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1194" target="_blank" rel="noopener noreferrer">docs(enums): recorded why WordKind::Unicode is not collapsing (#1194)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1187" target="_blank" rel="noopener noreferrer">fix: guarded the zero-width divisions in the painter and menus (#1187)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1186" target="_blank" rel="noopener noreferrer">fix(menu): closed the division panics in the columnar menu (#1186)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1182" target="_blank" rel="noopener noreferrer">feat(helix): accepted a HelixChangeMode event so keybindings can switch mode (#1182)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1181" target="_blank" rel="noopener noreferrer">refactor(engine): dropped two invariant re-check panics in the event arms (#1181)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1180" target="_blank" rel="noopener noreferrer">refactor(menu): sliced the list page with get instead of indexing (#1180)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1179" target="_blank" rel="noopener noreferrer">refactor(menu): read display widths through a checked helper (#1179)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1178" target="_blank" rel="noopener noreferrer">ci: added nushell's security-audit workflow (#1178)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1177" target="_blank" rel="noopener noreferrer">chore: bumped wayland-scanner to 0.31.11 for quick-xml 0.41 (#1177)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1174" target="_blank" rel="noopener noreferrer">refactor(menu): read the picked example through and_then instead of expect (#1174)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1173" target="_blank" rel="noopener noreferrer">fix(engine): propagated history errors instead of panicking (#1173)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1172" target="_blank" rel="noopener noreferrer">refactor(engine): read the excluded history item through Option instead of unwrap (#1172)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1171" target="_blank" rel="noopener noreferrer">fix(engine): kept history traversal alive while moving inside a recalled entry (#1171)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1170" target="_blank" rel="noopener noreferrer">fix(menu): kept the whole diff when old is a prefix of new (#1170)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1168" target="_blank" rel="noopener noreferrer">refactor: made three invariant re-checks structural (#1168)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1167" target="_blank" rel="noopener noreferrer">fix(painter): rebuilt pairs in style_range instead of splitting in place (#1167)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1165" target="_blank" rel="noopener noreferrer">refactor(menu): removed the panic surfaces in parse_selection_char and truncate_with_ansi (#1165)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1164" target="_blank" rel="noopener noreferrer">fix(hinter): stopped panicking when the history search fails (#1164)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1163" target="_blank" rel="noopener noreferrer">refactor(editor): made EditStack a zipper so no index can go stale (#1163)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1162" target="_blank" rel="noopener noreferrer">chore(external_printer)!: replaced crossbeam with std::sync::mpsc (#1162)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1161" target="_blank" rel="noopener noreferrer">chore!: dropped the helix feature flag (#1161)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1160" target="_blank" rel="noopener noreferrer">chore: folded the sqlite/sqlite-dynlib cfg pairs into a _sqlite feature (#1160)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1158" target="_blank" rel="noopener noreferrer">chore: dropped the idle_callback feature flag (#1158)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1157" target="_blank" rel="noopener noreferrer">feat(history): let callers construct HistorySessionId (#1157)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1156" target="_blank" rel="noopener noreferrer">fix(painter): kept the cursor position query off the tty in tests (#1156)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1155" target="_blank" rel="noopener noreferrer">fix(vi): pasted linewise before the current line, not the previous one (#1155)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1154" target="_blank" rel="noopener noreferrer">fix(engine): dropped the todo!() arm for SubstringSearch in history navigation (#1154)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1153" target="_blank" rel="noopener noreferrer">fix(vi): saturated the count parser and capped it at u16::MAX (#1153)</a></li>
</ul>
</li>
</ul>
<h2>Integrations</h2>
<ul>
<li>@Taywee:
<ul>
<li><a href="https://github.com/nushell/integrations/pull/78" target="_blank" rel="noopener noreferrer">fixed post-install.sh for install by non-user UIDs (#78)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>@hongquan:
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1277" target="_blank" rel="noopener noreferrer">updated the uv-completions to be compatible with uv 0.12 (#1277)</a></li>
<li><a href="https://github.com/nushell/nu_scripts/pull/1276" target="_blank" rel="noopener noreferrer">found <code>aws_completer</code> in libexec (#1276)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2231" target="_blank" rel="noopener noreferrer">published release notes for <code>v0.115.1</code> (#2231)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2230" target="_blank" rel="noopener noreferrer">published TWiN 365 (#2230)</a></li>
</ul>
</li>
<li>
<p>@Kissaki:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2229" target="_blank" rel="noopener noreferrer">improved v0.115.0 blog post text (#2229)</a></li>
</ul>
</li>
<li>
<p>@dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2228" target="_blank" rel="noopener noreferrer">bumped dependencies (example)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-08-28T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">Nushell 0.115.1</title>
    <id>https://www.nushell.sh/blog/2026-08-23-nushell_v0_115_1.html</id>
    <link href="https://www.nushell.sh/blog/2026-08-23-nushell_v0_115_1.html"/>
    <updated>2026-08-23T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Today, we're releasing version 0.115.1 of Nu. This patch release improves completions, adds Helix keybinding support, and fixes issues with semver comparisons, <code>$ans</code>, SQLite table updates, and keybinding merging.</p>
<h1>Where to get it</h1>
<p>Nu 0.115.1 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.115.1" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>]]></summary>
    <content type="html"><![CDATA[
<p>Today, we're releasing version 0.115.1 of Nu. This patch release improves completions, adds Helix keybinding support, and fixes issues with semver comparisons, <code>$ans</code>, SQLite table updates, and keybinding merging.</p>
<h1>Where to get it</h1>
<p>Nu 0.115.1 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.115.1" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Changes </h1>
<h2>Additions </h2>
<h3>Add <code>HelixChangeMode</code> keybinding support  </h3>
<p>Keybindings can now switch helix modes with <code>{ send: HelixChangeMode, mode: normal }</code>, taking <code>normal</code>, <code>insert</code> or <code>select</code>.
An <code>until</code> list covers vi and helix in one binding, since a mode event is inapplicable in the other editor's state machine:</p>
<div class="language-nu line-numbers-mode" data-highlighter="shiki" data-ext="nu" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nu"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.keybindings</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ++=</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> leave_insert_mode</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    modifier</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> control</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    keycode</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> char_g</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    mode</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">vi_insert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> helix_insert</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    event</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">until</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">send</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> ViChangeMode</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">mode:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> normal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">send</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> HelixChangeMode</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">mode:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> normal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    ] }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3>Add <code>background-completions</code> opt-out  </h3>
<p>Added the <code>background-completions</code> experimental option (enabled by default). Disabling it makes completions block the line editor again, which lets custom completers drive interactive child processes like fzf:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">experimental-options</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '[background-completions=false]'</span></span></code></pre>
</div><h2>Other changes </h2>
<h3>Interactive pickers in completions  </h3>
<p>Tab completion can run an interactive picker from <code>$env.config.completions.external.completer</code> (and from custom <code>@comp</code> / <code>@complete</code> closures). Closures such as fzf or <code>input list</code> take the TTY while the line editor waits. Completers that only print a list should still return quickly.</p>
<p>After <code>input list</code> (or a similar picker) returns from a completion or a custom menu, the prompt keeps raw mode. Backspace and other editing keys work again.</p>
<p>Subprocesses spawned from a background completion thread stay detached from the terminal even when their stdin is a pipe, so they cannot steal the TTY from the line editor.</p>
<h3>Tab waits for the external completer  </h3>
<p>When <code>$env.config.completions.external.completer</code> is set, Tab on an external command waits for that closure before the line editor continues. That lets a picker such as fzf or <code>input list</code> take the terminal. Completers that only print a list (for example Carapace) should return quickly; a slow closure freezes the prompt until it finishes.</p>
<p>File and command-name completion still run in the background. Custom menu <code>source</code> closures were already synchronous.</p>
<p>To make every Tab wait, not only user completers:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">experimental-options</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '[background-completions=false]'</span></span></code></pre>
</div><p>Results from the external completer and from <code>@comp</code> / <code>@complete</code> are not cached, so a picker runs again on the next Tab.</p>
<h2>Bug fixes </h2>
<h3>Fixed semver (and other custom) comparisons not working in boolean expressions  </h3>
<p>Comparing two semver values already returned a bool at runtime, but the parser treated that result as a <code>semver</code>. Combining it with <code>or</code> / <code>and</code>, binding it with <code>let</code>, or passing it to a <code>bool</code> parameter failed.</p>
<p>Those now work:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># missing or out of date</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">(</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">which</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> crush</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> is-empty</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">or</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> ((</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">crush</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">version</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> semver</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">&#x3C;</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'1.0.0'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> semver</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">))</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> outdated</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'0.9.0'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> semver</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">&#x3C;</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'1.0.0'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> semver</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">)</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># $outdated is bool</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">true</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> or</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> ((</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'1.2.3'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> semver</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">in</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'>=1.0.0'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> semver-range</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">))</span></span></code></pre>
</div><p>The same applies to other custom values whose comparisons return a bool (for example matrix). Custom types that return another custom value from <code>&lt;</code> / <code>==</code> (polars expressions) are unchanged.</p>
<p>A raw custom value is still not a bool: <code>true or ('1.0.0' | into semver)</code> remains a type error.</p>
<h3>Fix <code>$ans</code> after invalid operations on <code>$ans.last</code>  </h3>
<p><code>$ans</code> stays usable after a type error on <code>$ans.last</code></p>
<p>Invalid operations on <code>$ans.last</code> that embed type errors as values (for example <code>$ans.last | str length</code> on a table) no longer replace <code>$ans.last</code> or break later <code>$ans</code> display.</p>
<p>This mainly showed up with <code>table --expand</code> as the <code>display_output</code> hook.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.max_last_result_size</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1mb</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># table of files</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$ans.last</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str length</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Error: nu::shell::only_supports_this_input_type</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># (still printed — the command is invalid)</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$ans</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># record with the original ls table in `.last` — no longer reprints the type error</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$ans.last</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># still the ls table</span></span></code></pre>
</div><p><code>$ans.exit_code</code>, <code>$ans.duration</code>, and <code>$ans.command</code> still update for the failed line. Results that mix real values and errors still replace <code>$ans.last</code>. Top-level <code>table --expand</code> on a list of errors still shows the original diagnostic.</p>
<h3>Fix <code>update</code> closures on lazy SQLite tables  </h3>
<p><code>update</code> with a closure now works on a table taken from an opened SQLite database. <code>open foo.db | get my_table</code> is a lazy query; it already printed as a table, but <code>update col { ... }</code> reported a missing column instead of transforming each row.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[{ </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">key</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> test</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">created:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1787132290545485211</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">expiry:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1787139010545500670</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">value:</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">7</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">128</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] }]</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into sqlite</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">table-name</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> std_cache_store</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> test.db</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> test.db</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> get</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> std_cache_store</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> update</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> expiry</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">into datetime</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># table with `expiry` as datetime</span></span></code></pre>
</div><div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> sample.db</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> get</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> ints</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> update</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> z</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">default</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $in</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># each `z` value is incremented</span></span></code></pre>
</div><h3>Fix <code>$env.config.keybindings</code> merging for shared names  </h3>
<p>Fixed an issue where two keybindings sharing a name on different keys silently dropped one of them (broke atuin's ctrl-r).
Nushell now warns once when keybindings share a name, matches mode spellings like <code>emacs</code> and <code>[emacs]</code> when merging, and <code>$env.config.keybindings = []</code> clears the list again.</p>
<h3>Fix completions for <code>cd</code> and custom completers  </h3>
<p>Fixed completions for empty directory-typed arguments such as <code>cd &lt;tab&gt;</code> so they suggest directories instead of all paths.</p>
<p>Custom completers that error, return no result, or try to run interactive input commands now gracefully fall back to file completions instead of leaving the completion list empty or racing the line editor for terminal input.</p>
<p><code>commandline complete</code> now includes a <code>type: null</code> field for completion items that do not have a more specific type.</p>
<h1>Hall of fame </h1>
<p>Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏</p>
<p>| author                                         | change                              | link                                                    |
|</p>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-08-23T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #365</title>
    <id>https://www.nushell.sh/blog/2026-08-21-twin0365.html</id>
    <link href="https://www.nushell.sh/blog/2026-08-21-twin0365.html"/>
    <updated>2026-08-21T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-08-21, including PRs merged Friday, 2026-08-14 through Thursday, 2026-08-20.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18865" target="_blank" rel="noopener noreferrer">fixed <code>update</code> to work better with custom values (#18865)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18863" target="_blank" rel="noopener noreferrer">allowed <code>$ans</code> to still work after invalid operation (#18863)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18854" target="_blank" rel="noopener noreferrer">allowed boolean comparison with semver (#18854)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18836" target="_blank" rel="noopener noreferrer">renamed <code>$ans.cli</code> to <code>$ans.command</code> (#18836)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18834" target="_blank" rel="noopener noreferrer">fixed: single semver output as table instead of value (#18834)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18845" target="_blank" rel="noopener noreferrer">bumped patch version after release (#18845)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18843" target="_blank" rel="noopener noreferrer">fixed publishing (#18843)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18842" target="_blank" rel="noopener noreferrer">prepared release (#18842)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18838" target="_blank" rel="noopener noreferrer">made the visual selection style configurable (#18838)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18835" target="_blank" rel="noopener noreferrer">fixed(completion): stopped stat-ing all of PATH once the external cap is hit (#18835)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18833" target="_blank" rel="noopener noreferrer">gave <code>helix_select</code> keybindings their own table (#18833)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18830" target="_blank" rel="noopener noreferrer">bumped reedline to 61715da including helix-mode (#18830)</a></li>
</ul>
</li>
<li>
<p>@brandondong:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18831" target="_blank" rel="noopener noreferrer">fixed configuration book link in README (#18831)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18857" target="_blank" rel="noopener noreferrer">bumped hustcer/setup-nu from 3.26 to 3.27 (#18857)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-08-21, including PRs merged Friday, 2026-08-14 through Thursday, 2026-08-20.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18865" target="_blank" rel="noopener noreferrer">fixed <code>update</code> to work better with custom values (#18865)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18863" target="_blank" rel="noopener noreferrer">allowed <code>$ans</code> to still work after invalid operation (#18863)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18854" target="_blank" rel="noopener noreferrer">allowed boolean comparison with semver (#18854)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18836" target="_blank" rel="noopener noreferrer">renamed <code>$ans.cli</code> to <code>$ans.command</code> (#18836)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18834" target="_blank" rel="noopener noreferrer">fixed: single semver output as table instead of value (#18834)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18845" target="_blank" rel="noopener noreferrer">bumped patch version after release (#18845)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18843" target="_blank" rel="noopener noreferrer">fixed publishing (#18843)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18842" target="_blank" rel="noopener noreferrer">prepared release (#18842)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18838" target="_blank" rel="noopener noreferrer">made the visual selection style configurable (#18838)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18835" target="_blank" rel="noopener noreferrer">fixed(completion): stopped stat-ing all of PATH once the external cap is hit (#18835)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18833" target="_blank" rel="noopener noreferrer">gave <code>helix_select</code> keybindings their own table (#18833)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18830" target="_blank" rel="noopener noreferrer">bumped reedline to 61715da including helix-mode (#18830)</a></li>
</ul>
</li>
<li>
<p>@brandondong:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18831" target="_blank" rel="noopener noreferrer">fixed configuration book link in README (#18831)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18857" target="_blank" rel="noopener noreferrer">bumped hustcer/setup-nu from 3.26 to 3.27 (#18857)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@maxim-uvarov:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2228" target="_blank" rel="noopener noreferrer">fixed yaml examples 0115 (#2228)</a></li>
</ul>
</li>
<li>
<p>@weirdan:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2227" target="_blank" rel="noopener noreferrer">fixed typo (<code>s/unwatned/unwanted/</code>) (#2227)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2226" target="_blank" rel="noopener noreferrer">added release notes for <code>v0.115.0</code> (#2226)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2225" target="_blank" rel="noopener noreferrer">added TWiN 362-364 (#2225)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2224" target="_blank" rel="noopener noreferrer">refreshed command docs for v0.115 (#2224)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1150" target="_blank" rel="noopener noreferrer">bumped minor version (#1150)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1149" target="_blank" rel="noopener noreferrer">styled the cursor cell inside a visual selection (#1149)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1148" target="_blank" rel="noopener noreferrer">gave select mode its own keybinding table (#1148)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>@PRO-2684:
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1274" target="_blank" rel="noopener noreferrer">added Codex completions (#1274)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-08-21T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">Nushell 0.115.0</title>
    <id>https://www.nushell.sh/blog/2026-08-15-nushell_v0_115_0.html</id>
    <link href="https://www.nushell.sh/blog/2026-08-15-nushell_v0_115_0.html"/>
    <updated>2026-08-15T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Today, we're releasing version 0.115.0 of Nu. This release brings a major YAML rework, the new <code>$ans</code> REPL variable for inspecting your last result, Helix-style editing, and a lot of internal cleanup and fixes.</p>
<h1>Where to get it</h1>
<p>Nu 0.115.0 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.115.0" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed, you can install it using <code>cargo install nu</code>.</p>]]></summary>
    <content type="html"><![CDATA[
<p>Today, we're releasing version 0.115.0 of Nu. This release brings a major YAML rework, the new <code>$ans</code> REPL variable for inspecting your last result, Helix-style editing, and a lot of internal cleanup and fixes.</p>
<h1>Where to get it</h1>
<p>Nu 0.115.0 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.115.0" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed, you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Highlights and themes of this release </h1>
<h2>YAML's Always More Labor </h2>
<p>Thanks to <a href="https://github.com/cptpiepmatz" target="_blank" rel="noopener noreferrer">@cptpiepmatz</a>, Nushell's YAML support got a proper rebuild. We now use a stable, modern, maintained implementation that no longer tries to make YAML 1.1, the scary one, and YAML 1.2 behave like one big YAML-shaped compromise.</p>
<p>The two specs are now handled separately, <code>from yaml</code> defaults to YAML 1.2, tags work more deliberately, multi-document streams are supported, anchors and merge keys behave properly, and <code>to yaml</code> is clearer about values that cannot round-trip.</p>
<p>Take a look at all the examples <a href="#yaml-got-a-proper-rework">here</a>.</p>
<h2>Ah, the <code>$ans.last</code> pipeline took so long to run </h2>
<p>Ever had your last pipeline take forever, only to realize you forgot to assign the result to a variable? Worry no longer. Thanks to <a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a>, Nushell now has <code>$ans</code>, a Nushell-specific answer variable heavily inspired by calculators.</p>
<p><code>$ans</code> keeps track of the last REPL result, including the output, duration, exit code, and the command you typed. Storing the output is opt-in: set <code>$env.config.max_last_result_size</code> to a filesize of your choosing, and <code>$ans.last</code> will keep up to that much of the previous pipeline result.</p>
<p>That means if your pipeline took 15 minutes and you do not want to run it again, you can finally breathe, do a quick <code>let took_too_long = $ans.last</code>, and you're golden. Take a closer look <a href="#added-ans-for-accessing-the-last-repl-result">here</a>.</p>
<h2>Helix mode! </h2>
<p>Alongside Vim mode, Nushell now has <code>helix</code> edit mode too. Set it with <code>$env.config.edit_mode = helix</code>, and that's it. You get a selection-first, Helix/Kakoune-style editing experience with normal, select, and insert modes.</p>
<p>Thanks to <a href="https://github.com/kronberger-droid" target="_blank" rel="noopener noreferrer">@kronberger-droid</a> for the work here. More details are <a href="#added-helix-edit-mode">here</a>.</p>
<h2>Lots of internal wrangling </h2>
<p>This release does not have a huge pile of public user-facing additions, but there was a lot of work inside Nushell. Be in awe of the long list of things happening in the ✨ <a href="#hall-of-fame">Hall of Fame</a> ✨, and also check out the <a href="#bug-fixes">long list of fixes</a>.</p>
<p>As always, a big shoutout to everyone contributing and making Nushell better. The internals may not always get the flashiest highlight section, but they are doing a lot of heavy lifting this time.</p>
<h1>Changes </h1>
<h2>Breaking changes </h2>
<h3>YAML got a proper rework  </h3>
<p>YAML has been a problem child for quite some time now. This release replaces the old <code>serde_yaml</code>-based implementation with a new one built on <code>serde-saphyr</code> and <code>granit-parser</code>. With that, we now get clearer YAML behavior, better round-tripping, proper tag support, multi-document streams, anchors, aliases, merge keys, and a few new options for configuring how the output should look like.</p>
<h4>Breaking changes</h4>
<p>The big breaking change is that Nu no longer tries to parse YAML as an awkward mix of YAML 1.1 and YAML 1.2. We now default to YAML 1.2, which is usually the less crazy choice. If your files or scripts relied on old YAML 1.1 scalar magic, pass <code>--spec 1.1</code>.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">use</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> std/</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Default YAML 1.2 behavior: these stay strings.</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"yes"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"yes"</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"off"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">spec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1.2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"off"</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># YAML 1.1 keeps the classic YAML oddities.</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"yes"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">spec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1.1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">true</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"off"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">spec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1.1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">false</span></span></code></pre>
</div><p>This specifically breaks octal numbers. In the 1.1 spec, a value is interpreted as an octal number if it starts with the <code>0</code> digit. It is then parsed as an octal value. If the value is not valid octal, it is instead returned as a string.</p>
<p>The 1.2 spec made this much more sensible by allowing leading zeros on regular numbers and requiring octal numbers to use the <code>0o</code> prefix.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">use</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> std/</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># YAML 1.1 uses a leading zero as an octal indicator.</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"0247"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">spec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1.1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">0o247</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"0o247"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">spec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1.1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"0o247"</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># YAML 1.2 replaced that with the `0o` prefix.</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"0247"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">spec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1.2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">0247</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"0o247"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">spec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1.2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">0o247</span></span></code></pre>
</div><p>Did you know that YAML 1.1 supports sexagesimal values like <code>190:20:30</code>? No, well, in the 1.1 spec, these are base-60 numbers that can be used to represent time, but no one knows that, so 1.2 got rid of them. And as Nushell now defaults to 1.2, we interpret these as strings.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">use</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> std/</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"190:20:30"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"190:20:30"</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"190:20:30"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">spec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1.1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">685230</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"02472256"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">2472256</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"02472256"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">spec</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1.1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">685230</span></span></code></pre>
</div><p><code>from yaml</code> is stricter about mapping keys now, too. Nushell record keys are strings, so plain YAML keys that resolve to booleans, numbers, or null are rejected by default. If you want the old loose behavior, use <code>--key-resolution verbatim</code> and Nushell will keep the original key text.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'true: enabled'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Error: YAML key resolves to a boolean, but Nushell record keys are strings</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'true: enabled'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">key-resolution</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> verbatim</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => {true: enabled}</span></span></code></pre>
</div><p>Tags also mean tags now. Previously, tagged scalars weren't really handled properly; often they were just ignored and handled as plain strings, but in YAML they describe the data, usually as some types. Now unknown tags error by default, but you can use <code>--ignore-tags</code> to just ignore the tags and deal with them yourself.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'Key: !Sub ${AWS::StackName}'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Error: unknown YAML tag</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'Key: !Sub ${AWS::StackName}'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">ignore-tags</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => {Key: "${AWS::StackName}"}</span></span></code></pre>
</div><p><code>to yaml</code> is also more specific about values that cannot round-trip. By default it errors instead of quietly turning them into something else. If that is unwanted, choose the behavior explicitly with <code>--non-roundtrip null</code> or <code>--non-roundtrip lossy</code>. The <code>--serialize</code> flag is still available but will probably be deprecated in the future.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{|| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$in</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> to yaml</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># Error: closures are not round-trippable through YAML</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{|| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$in</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> to yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">non-roundtrip</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "null"</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => null</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{|| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$in</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> to yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">serialize</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># => !closure "{|| $in }"</span></span></code></pre>
</div><p>One more relevant breaking change: generated YAML may not look exactly like it did before. The new serializer quotes strings more carefully, writes tags for Nushell-specific values, and lets you configure indentation. If you depended on a specific YAML output, you might need to check that.</p>
<h4>Tags and round-tripping</h4>
<p>Nushell now understands standard YAML tags like <a href="https://yaml.org/type/timestamp.html" target="_blank" rel="noopener noreferrer"><code>!!timestamp</code></a>,<a href="https://yaml.org/type/binary.html" target="_blank" rel="noopener noreferrer"><code>!!binary</code></a>, <a href="https://yaml.org/type/omap.html" target="_blank" rel="noopener noreferrer"><code>!!omap</code></a>, <a href="https://yaml.org/type/pairs.html" target="_blank" rel="noopener noreferrer"><code>!!pairs</code></a>, and <a href="https://yaml.org/type/set.html" target="_blank" rel="noopener noreferrer"><code>!!set</code></a>. It also writes Nushell-specific local tags for values that YAML did not define globally, such as filesizes, durations, ranges, globs, and cell paths.</p>
<div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">Cargo.toml</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">size</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">!filesize</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 17515</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">modified</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">!!timestamp</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#D19A66"> 2026-08-14T23:30:19.144306+02:00</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">path</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">!cell-path</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> $.items.0.name</span></span></code></pre>
</div><p>Here, <code>!filesize</code> and <code>!cell-path</code> are Nushell tags, while <code>!!timestamp</code> is a standard YAML tag. When you read this back with <code>from yaml</code>, those fields come back as properly typed values instead of plain strings or integers.</p>
<p>If you want the YAML version and Nushell tag prefix written out explicitly, use <code>to yaml --add-directives</code> or <code>to yaml -d</code>.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">ls</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> where</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> Cargo.toml</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> first</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> to yaml</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">add-directives</span></span></code></pre>
</div><div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">%</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">YAML</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1.2</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">%</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">TAG</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> !</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#ABB2BF"> tag:nushell.sh,2026:</span></span></code></pre>
</div>]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-08-15T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #364</title>
    <id>https://www.nushell.sh/blog/2026-08-14-twin0364.html</id>
    <link href="https://www.nushell.sh/blog/2026-08-14-twin0364.html"/>
    <updated>2026-08-14T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-08-14, including PRs merged Friday, 2026-08-07 through Thursday, 2026-08-13.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18829" target="_blank" rel="noopener noreferrer">chore(reedline): bumped to latest reedline commit 6b9115d (#18829)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18828" target="_blank" rel="noopener noreferrer">fix(config): matched unnamed keybindings by the key they bind (#18828)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18806" target="_blank" rel="noopener noreferrer">fix(completion): stopped the cache reordering the answer it stands in for (#18806)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18798" target="_blank" rel="noopener noreferrer">bumped reedline to e4fe8ed (#18798)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18827" target="_blank" rel="noopener noreferrer">added <code>cli</code> key to <code>$ans</code> record, renamed <code>last_result_size</code> to <code>max_last_result_size</code> (#18827)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18820" target="_blank" rel="noopener noreferrer">bug: made <code>$ans</code> work better with TUIs (#18820)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18819" target="_blank" rel="noopener noreferrer">fix: allowed semver to have coloring, added <code>--loose</code> flag (#18819)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18808" target="_blank" rel="noopener noreferrer">reduced ast footprint, increased ir footprint - phase 0 (#18808)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18802" target="_blank" rel="noopener noreferrer">updated deps (#18802)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18797" target="_blank" rel="noopener noreferrer">Allowed all built-in commands with <code>--regex</code> to use LRU (#18797)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18795" target="_blank" rel="noopener noreferrer">updated uu-utils crates to v0.10.0 (#18795)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18782" target="_blank" rel="noopener noreferrer">allowed parameters with <code>#</code> to be passed (#18782)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18779" target="_blank" rel="noopener noreferrer">upgraded <code>kdl</code> to support <code>--spec 1</code> or <code>--spec 2</code> (#18779)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18729" target="_blank" rel="noopener noreferrer">added <code>$ans</code> record for storing the last result from the repl (#18729)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18826" target="_blank" rel="noopener noreferrer">Fixed module item completion (#18826)</a></li>
</ul>
</li>
<li>
<p>@cpea2506:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18817" target="_blank" rel="noopener noreferrer">bumped devicons to 0.6.13 (#18817)</a></li>
</ul>
</li>
<li>
<p>@Mrfiregem:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18815" target="_blank" rel="noopener noreferrer">Showed deprecation entries in <code>scope commands</code> output (#18815)</a></li>
</ul>
</li>
<li>
<p>@hexbinoct:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18812" target="_blank" rel="noopener noreferrer">Lexed quotes inside interpolated string subexpressions (#18812)</a></li>
</ul>
</li>
<li>
<p>@latent-9:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18809" target="_blank" rel="noopener noreferrer">fix(stor): rejected a missing file in stor import instead of discarding the in-memory database (#18809)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18825" target="_blank" rel="noopener noreferrer">build(deps): bumped bytesize from 2.4.0 to 2.7.0 (#18825)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18824" target="_blank" rel="noopener noreferrer">build(deps): bumped taiki-e/install-action from 2.85.8 to 2.85.11 (#18824)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18823" target="_blank" rel="noopener noreferrer">build(deps): bumped actions-rust-lang/setup-rust-toolchain from 1.12.0 to 1.17.0 (#18823)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18822" target="_blank" rel="noopener noreferrer">build(deps): bumped Swatinem/rust-cache from 2.9.1 to 2.9.2 (#18822)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-08-14, including PRs merged Friday, 2026-08-07 through Thursday, 2026-08-13.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18829" target="_blank" rel="noopener noreferrer">chore(reedline): bumped to latest reedline commit 6b9115d (#18829)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18828" target="_blank" rel="noopener noreferrer">fix(config): matched unnamed keybindings by the key they bind (#18828)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18806" target="_blank" rel="noopener noreferrer">fix(completion): stopped the cache reordering the answer it stands in for (#18806)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18798" target="_blank" rel="noopener noreferrer">bumped reedline to e4fe8ed (#18798)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18827" target="_blank" rel="noopener noreferrer">added <code>cli</code> key to <code>$ans</code> record, renamed <code>last_result_size</code> to <code>max_last_result_size</code> (#18827)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18820" target="_blank" rel="noopener noreferrer">bug: made <code>$ans</code> work better with TUIs (#18820)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18819" target="_blank" rel="noopener noreferrer">fix: allowed semver to have coloring, added <code>--loose</code> flag (#18819)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18808" target="_blank" rel="noopener noreferrer">reduced ast footprint, increased ir footprint - phase 0 (#18808)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18802" target="_blank" rel="noopener noreferrer">updated deps (#18802)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18797" target="_blank" rel="noopener noreferrer">Allowed all built-in commands with <code>--regex</code> to use LRU (#18797)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18795" target="_blank" rel="noopener noreferrer">updated uu-utils crates to v0.10.0 (#18795)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18782" target="_blank" rel="noopener noreferrer">allowed parameters with <code>#</code> to be passed (#18782)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18779" target="_blank" rel="noopener noreferrer">upgraded <code>kdl</code> to support <code>--spec 1</code> or <code>--spec 2</code> (#18779)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18729" target="_blank" rel="noopener noreferrer">added <code>$ans</code> record for storing the last result from the repl (#18729)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18826" target="_blank" rel="noopener noreferrer">Fixed module item completion (#18826)</a></li>
</ul>
</li>
<li>
<p>@cpea2506:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18817" target="_blank" rel="noopener noreferrer">bumped devicons to 0.6.13 (#18817)</a></li>
</ul>
</li>
<li>
<p>@Mrfiregem:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18815" target="_blank" rel="noopener noreferrer">Showed deprecation entries in <code>scope commands</code> output (#18815)</a></li>
</ul>
</li>
<li>
<p>@hexbinoct:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18812" target="_blank" rel="noopener noreferrer">Lexed quotes inside interpolated string subexpressions (#18812)</a></li>
</ul>
</li>
<li>
<p>@latent-9:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18809" target="_blank" rel="noopener noreferrer">fix(stor): rejected a missing file in stor import instead of discarding the in-memory database (#18809)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18825" target="_blank" rel="noopener noreferrer">build(deps): bumped bytesize from 2.4.0 to 2.7.0 (#18825)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18824" target="_blank" rel="noopener noreferrer">build(deps): bumped taiki-e/install-action from 2.85.8 to 2.85.11 (#18824)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18823" target="_blank" rel="noopener noreferrer">build(deps): bumped actions-rust-lang/setup-rust-toolchain from 1.12.0 to 1.17.0 (#18823)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18822" target="_blank" rel="noopener noreferrer">build(deps): bumped Swatinem/rust-cache from 2.9.1 to 2.9.2 (#18822)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1147" target="_blank" rel="noopener noreferrer">fix(painter): stopped trimming the newline that ends a multi-line prompt (#1147)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1146" target="_blank" rel="noopener noreferrer">chore: raised rust-version to the 1.95 the locked deps requirements (#1146)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1145" target="_blank" rel="noopener noreferrer">fix(painter): stopped gating the exit erase on after-cursor text (#1145)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1144" target="_blank" rel="noopener noreferrer">fix(engine): decided menu completions once the completer answers (#1144)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1141" target="_blank" rel="noopener noreferrer">fix(painter): pinned the cursor when a line fills the terminal width (#1141)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1138" target="_blank" rel="noopener noreferrer">feat(helix)!: added helix edit mode behind a feature flag (#1138)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1133" target="_blank" rel="noopener noreferrer">fix(painter): didn't re-use a bottom-flush prompt anchor after a scroll (#1133)</a></li>
</ul>
</li>
<li>
<p>@james-kassabian:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1139" target="_blank" rel="noopener noreferrer">Took the external-print anchor from the terminal, not a count (#1139)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@orthonormalremy:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2223" target="_blank" rel="noopener noreferrer">converted the direnv export PATH to a list before loading it into env (#2223)</a></li>
</ul>
</li>
<li>
<p>@idzikovsky:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2222" target="_blank" rel="noopener noreferrer">Fixed missing word in style guide for surrounding constructs (#2222)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2221" target="_blank" rel="noopener noreferrer">bumped js-yaml from 3.15.0 to 3.15.1 (#2221)</a></li>
</ul>
</li>
</ul>
<h2>Tree-sitter</h2>
<ul>
<li>@app/dependabot:
<ul>
<li><a href="https://github.com/nushell/tree-sitter-nu/pull/255" target="_blank" rel="noopener noreferrer">chore(deps-dev): bumped js-yaml from 4.3.0 to 4.3.1 (#255)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>@fdncred:
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/212" target="_blank" rel="noopener noreferrer">batched fixes (#212)</a></li>
</ul>
</li>
</ul>
<h2>VSCode Extension</h2>
<ul>
<li>@mst-mkt:
<ul>
<li><a href="https://github.com/nushell/vscode-nushell-lang/pull/237" target="_blank" rel="noopener noreferrer">fix: fixed Syntax highlighting broken for bare string values in records (#237)</a></li>
</ul>
</li>
</ul>
<h2>New nu-parser</h2>
<ul>
<li>@InnocentZero:
<ul>
<li><a href="https://github.com/nushell/new-nu-parser/pull/73" target="_blank" rel="noopener noreferrer">Fixed type inferencing in partial if blocks (#73)</a></li>
<li><a href="https://github.com/nushell/new-nu-parser/pull/71" target="_blank" rel="noopener noreferrer">Added oneof&lt;...&gt; type declarations (#71)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-08-14T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #363</title>
    <id>https://www.nushell.sh/blog/2026-08-07-twin0363.html</id>
    <link href="https://www.nushell.sh/blog/2026-08-07-twin0363.html"/>
    <updated>2026-08-07T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-08-14, including PRs merged Friday, 2026-07-31 through Thursday, 2026-08-06.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18783" target="_blank" rel="noopener noreferrer">feat(format duration/filesize): added completions for units (#18783)</a></li>
</ul>
</li>
<li>
<p>@cacdu:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18773" target="_blank" rel="noopener noreferrer">fix(save): gave actionable error when structured data has no serializer (#18773)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18776" target="_blank" rel="noopener noreferrer">removed <code>nu!</code> and updated tests (#18776)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18768" target="_blank" rel="noopener noreferrer">more updated tests (#18768)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18780" target="_blank" rel="noopener noreferrer">bumped deps (#18780)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18775" target="_blank" rel="noopener noreferrer">updated nushell to latest reedline commit 60d99674 (#18775)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18772" target="_blank" rel="noopener noreferrer">fixed math max empty list vs empty string (#18772)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18770" target="_blank" rel="noopener noreferrer">fixed color config fallbacks (#18770)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18702" target="_blank" rel="noopener noreferrer">improved lex/parse errors (#18702)</a></li>
</ul>
</li>
<li>
<p>@ian-h-chamberlain:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18576" target="_blank" rel="noopener noreferrer">supported CLI args for commandline (<code>nu -c</code>) scripts (#18576)</a></li>
</ul>
</li>
<li>
<p>@oh-summy:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18638" target="_blank" rel="noopener noreferrer">fix(help): documented list input support for hash md5/sha256 (#18638)</a></li>
</ul>
</li>
<li>
<p>@pheenty:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18785" target="_blank" rel="noopener noreferrer">treated empty string as an invalid path in path type (#18785)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18761" target="_blank" rel="noopener noreferrer">reworked how completer works (#18761)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18660" target="_blank" rel="noopener noreferrer">async prompt updating (#18660)</a></li>
</ul>
</li>
<li>
<p>@Totara-thib:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18787" target="_blank" rel="noopener noreferrer">pinned CI actions to commit SHAs and declared workflow permissions (#18787)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18784" target="_blank" rel="noopener noreferrer">build(deps): bumped http from 1.4.0 to 1.5.0 (#18784)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-08-14, including PRs merged Friday, 2026-07-31 through Thursday, 2026-08-06.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18783" target="_blank" rel="noopener noreferrer">feat(format duration/filesize): added completions for units (#18783)</a></li>
</ul>
</li>
<li>
<p>@cacdu:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18773" target="_blank" rel="noopener noreferrer">fix(save): gave actionable error when structured data has no serializer (#18773)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18776" target="_blank" rel="noopener noreferrer">removed <code>nu!</code> and updated tests (#18776)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18768" target="_blank" rel="noopener noreferrer">more updated tests (#18768)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18780" target="_blank" rel="noopener noreferrer">bumped deps (#18780)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18775" target="_blank" rel="noopener noreferrer">updated nushell to latest reedline commit 60d99674 (#18775)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18772" target="_blank" rel="noopener noreferrer">fixed math max empty list vs empty string (#18772)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18770" target="_blank" rel="noopener noreferrer">fixed color config fallbacks (#18770)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18702" target="_blank" rel="noopener noreferrer">improved lex/parse errors (#18702)</a></li>
</ul>
</li>
<li>
<p>@ian-h-chamberlain:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18576" target="_blank" rel="noopener noreferrer">supported CLI args for commandline (<code>nu -c</code>) scripts (#18576)</a></li>
</ul>
</li>
<li>
<p>@oh-summy:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18638" target="_blank" rel="noopener noreferrer">fix(help): documented list input support for hash md5/sha256 (#18638)</a></li>
</ul>
</li>
<li>
<p>@pheenty:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18785" target="_blank" rel="noopener noreferrer">treated empty string as an invalid path in path type (#18785)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18761" target="_blank" rel="noopener noreferrer">reworked how completer works (#18761)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18660" target="_blank" rel="noopener noreferrer">async prompt updating (#18660)</a></li>
</ul>
</li>
<li>
<p>@Totara-thib:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18787" target="_blank" rel="noopener noreferrer">pinned CI actions to commit SHAs and declared workflow permissions (#18787)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18784" target="_blank" rel="noopener noreferrer">build(deps): bumped http from 1.4.0 to 1.5.0 (#18784)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1140" target="_blank" rel="noopener noreferrer">test(editor): kept case-transform selections inside the buffer (#1140)</a></li>
</ul>
</li>
<li>
<p>@matystroia:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1087" target="_blank" rel="noopener noreferrer">feat(vi): added <code>u</code>, <code>U</code> visual mode commands (#1087)</a></li>
</ul>
</li>
<li>
<p>@sim590:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1067" target="_blank" rel="noopener noreferrer">feat(vi): supported deleting chars backward with X (#1067)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@davidpavlovschi:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2219" target="_blank" rel="noopener noreferrer">Fixed incorrect claim that a module file cannot match its directory name (#2219)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2218" target="_blank" rel="noopener noreferrer">Bumped postcss from 8.5.16 to 8.5.25 (#2218)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2217" target="_blank" rel="noopener noreferrer">Bumped undici from 7.28.0 to 7.29.0 (#2217)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2214" target="_blank" rel="noopener noreferrer">Bumped seroval from 1.5.0 to 1.5.6 (#2214)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-08-07T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #362</title>
    <id>https://www.nushell.sh/blog/2026-07-31-twin0362.html</id>
    <link href="https://www.nushell.sh/blog/2026-07-31-twin0362.html"/>
    <updated>2026-07-31T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-08-14, including PRs merged Friday, 2026-07-24 through Thursday, 2026-07-30.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18756" target="_blank" rel="noopener noreferrer">stabilized unreliable tests in CI (#18756)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18748" target="_blank" rel="noopener noreferrer">refactored a handful of tests to use <code>test()</code> (#18748)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18740" target="_blank" rel="noopener noreferrer">refactored <code>open</code> tests (#18740)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18739" target="_blank" rel="noopener noreferrer">updated the help text of test binaries (#18739)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18727" target="_blank" rel="noopener noreferrer">updated <code>kitest</code> (#18727)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18720" target="_blank" rel="noopener noreferrer">stopped running CI on lower layers of stacked PRs (#18720)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18719" target="_blank" rel="noopener noreferrer">removed <code>--testbin</code> from <code>nu</code> (#18719)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18718" target="_blank" rel="noopener noreferrer">updated internal commands tests (#18718)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18717" target="_blank" rel="noopener noreferrer">updated external commands tests (#18717)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18716" target="_blank" rel="noopener noreferrer">updated eval tests (#18716)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18715" target="_blank" rel="noopener noreferrer">updated <code>run external</code> tests (#18715)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18714" target="_blank" rel="noopener noreferrer">updated redirection tests (#18714)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18713" target="_blank" rel="noopener noreferrer">refactored most test files that used <code>nu --testbin</code> (#18713)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18712" target="_blank" rel="noopener noreferrer">refactored some tests (#18712)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18755" target="_blank" rel="noopener noreferrer">made <code>error make</code> raise errors for invalid labels (#18755)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18753" target="_blank" rel="noopener noreferrer">stopped <code>lines</code> from prematurely collecting output for string value input (#18753)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18752" target="_blank" rel="noopener noreferrer">fixed the job spawn closure so it runs with an empty pipeline, not <code>null</code> (#18752)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18751" target="_blank" rel="noopener noreferrer">fixed <code>generate</code> to handle <code>null</code> input the same as an empty pipeline (#18751)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18754" target="_blank" rel="noopener noreferrer">updated math commands to handle records and support cell path rest params (#18754)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18750" target="_blank" rel="noopener noreferrer">updated <code>doc_config.nu</code> and tweaked the explore section (#18750)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18747" target="_blank" rel="noopener noreferrer">made <code>$env.config</code> show default configuration when not set even with <code>nu -n</code> (#18747)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18726" target="_blank" rel="noopener noreferrer">fixed startup with dangling symlinks (#18726)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18724" target="_blank" rel="noopener noreferrer">fixed <code>ls **</code> when using the dc-glob experimental option (#18724)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18709" target="_blank" rel="noopener noreferrer">added more consistency with null types (#18709)</a></li>
</ul>
</li>
<li>
<p>@xtqqczze:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18746" target="_blank" rel="noopener noreferrer">bumped num-bigint from 0.4.6 to 0.4.8 (#18746)</a></li>
</ul>
</li>
<li>
<p>@danielcadev:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18735" target="_blank" rel="noopener noreferrer">fixed <code>save</code> to serialize structured data to text files (#18735)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18723" target="_blank" rel="noopener noreferrer">fixed RHS pipeline input type checking (issue #18682) (#18723)</a></li>
</ul>
</li>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18730" target="_blank" rel="noopener noreferrer">added lazy and expression support for <code>polars rolling</code> (#18730)</a></li>
</ul>
</li>
<li>
<p>@ZayanKhan-12:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18721" target="_blank" rel="noopener noreferrer">fixed devdocs links in AGENTS.md (#18721)</a></li>
</ul>
</li>
<li>
<p>@rvhelden:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18708" target="_blank" rel="noopener noreferrer">passed <code>Stack</code> to the IR debugger instruction callbacks (#18708)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-08-14, including PRs merged Friday, 2026-07-24 through Thursday, 2026-07-30.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18756" target="_blank" rel="noopener noreferrer">stabilized unreliable tests in CI (#18756)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18748" target="_blank" rel="noopener noreferrer">refactored a handful of tests to use <code>test()</code> (#18748)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18740" target="_blank" rel="noopener noreferrer">refactored <code>open</code> tests (#18740)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18739" target="_blank" rel="noopener noreferrer">updated the help text of test binaries (#18739)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18727" target="_blank" rel="noopener noreferrer">updated <code>kitest</code> (#18727)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18720" target="_blank" rel="noopener noreferrer">stopped running CI on lower layers of stacked PRs (#18720)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18719" target="_blank" rel="noopener noreferrer">removed <code>--testbin</code> from <code>nu</code> (#18719)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18718" target="_blank" rel="noopener noreferrer">updated internal commands tests (#18718)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18717" target="_blank" rel="noopener noreferrer">updated external commands tests (#18717)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18716" target="_blank" rel="noopener noreferrer">updated eval tests (#18716)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18715" target="_blank" rel="noopener noreferrer">updated <code>run external</code> tests (#18715)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18714" target="_blank" rel="noopener noreferrer">updated redirection tests (#18714)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18713" target="_blank" rel="noopener noreferrer">refactored most test files that used <code>nu --testbin</code> (#18713)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18712" target="_blank" rel="noopener noreferrer">refactored some tests (#18712)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18755" target="_blank" rel="noopener noreferrer">made <code>error make</code> raise errors for invalid labels (#18755)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18753" target="_blank" rel="noopener noreferrer">stopped <code>lines</code> from prematurely collecting output for string value input (#18753)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18752" target="_blank" rel="noopener noreferrer">fixed the job spawn closure so it runs with an empty pipeline, not <code>null</code> (#18752)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18751" target="_blank" rel="noopener noreferrer">fixed <code>generate</code> to handle <code>null</code> input the same as an empty pipeline (#18751)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18754" target="_blank" rel="noopener noreferrer">updated math commands to handle records and support cell path rest params (#18754)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18750" target="_blank" rel="noopener noreferrer">updated <code>doc_config.nu</code> and tweaked the explore section (#18750)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18747" target="_blank" rel="noopener noreferrer">made <code>$env.config</code> show default configuration when not set even with <code>nu -n</code> (#18747)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18726" target="_blank" rel="noopener noreferrer">fixed startup with dangling symlinks (#18726)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18724" target="_blank" rel="noopener noreferrer">fixed <code>ls **</code> when using the dc-glob experimental option (#18724)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18709" target="_blank" rel="noopener noreferrer">added more consistency with null types (#18709)</a></li>
</ul>
</li>
<li>
<p>@xtqqczze:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18746" target="_blank" rel="noopener noreferrer">bumped num-bigint from 0.4.6 to 0.4.8 (#18746)</a></li>
</ul>
</li>
<li>
<p>@danielcadev:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18735" target="_blank" rel="noopener noreferrer">fixed <code>save</code> to serialize structured data to text files (#18735)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18723" target="_blank" rel="noopener noreferrer">fixed RHS pipeline input type checking (issue #18682) (#18723)</a></li>
</ul>
</li>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18730" target="_blank" rel="noopener noreferrer">added lazy and expression support for <code>polars rolling</code> (#18730)</a></li>
</ul>
</li>
<li>
<p>@ZayanKhan-12:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18721" target="_blank" rel="noopener noreferrer">fixed devdocs links in AGENTS.md (#18721)</a></li>
</ul>
</li>
<li>
<p>@rvhelden:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18708" target="_blank" rel="noopener noreferrer">passed <code>Stack</code> to the IR debugger instruction callbacks (#18708)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>@philocalyst:
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1136" target="_blank" rel="noopener noreferrer">strengthened contracts around completions (#1136)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2213" target="_blank" rel="noopener noreferrer">fixed the <code>--experimental-options</code> typo in the <code>ExperimentalOption</code> element (#2213)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2212" target="_blank" rel="noopener noreferrer">caught up on TWiN (again) (#2212)</a></li>
</ul>
</li>
<li>
<p>@ColumbusLabs:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2211" target="_blank" rel="noopener noreferrer">documented passing arguments to external commands (#2211)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2210" target="_blank" rel="noopener noreferrer">bumped immutable from 5.1.5 to 5.1.9 (#2210)</a></li>
</ul>
</li>
</ul>
<h2>Tree-sitter</h2>
<ul>
<li>@app/dependabot:
<ul>
<li><a href="https://github.com/nushell/tree-sitter-nu/pull/254" target="_blank" rel="noopener noreferrer">bumped flatted from 3.3.3 to 3.4.3 (#254)</a></li>
<li><a href="https://github.com/nushell/tree-sitter-nu/pull/253" target="_blank" rel="noopener noreferrer">bumped js-yaml from 4.1.1 to 4.3.0 (#253)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@fhalim:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/170" target="_blank" rel="noopener noreferrer">added nu_plugin_todoist (#170)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-07-31T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #361</title>
    <id>https://www.nushell.sh/blog/2026-07-24-twin0361.html</id>
    <link href="https://www.nushell.sh/blog/2026-07-24-twin0361.html"/>
    <updated>2026-07-24T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-07-24, including PRs merged Friday, 2026-07-17 through Thursday, 2026-07-23.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18701" target="_blank" rel="noopener noreferrer">added splashboard to .gitignore (#18701)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18695" target="_blank" rel="noopener noreferrer">bumped reedline dep to latest commit 7eb9bf2 (#18695)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18693" target="_blank" rel="noopener noreferrer">updated fff-search to 0.10.1 and tokio to 1.53.1 (#18693)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18683" target="_blank" rel="noopener noreferrer">updated agent.md (#18683)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18681" target="_blank" rel="noopener noreferrer">bumped nushell to latest reedline commit a2c6e124 (#18681)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18678" target="_blank" rel="noopener noreferrer">updated some dependencies (#18678)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18662" target="_blank" rel="noopener noreferrer">disallowed keywords from being shadowed (#18662)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18661" target="_blank" rel="noopener noreferrer">fixed <code>is-terminal</code> OS detection and added <code>is-redirected</code> for pipeline destinations (#18661)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18655" target="_blank" rel="noopener noreferrer">updated nushell to latest reedline commit (#18655)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18639" target="_blank" rel="noopener noreferrer">added <code>idx watch</code> command (#18639)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18632" target="_blank" rel="noopener noreferrer">fixed bug where <code>ls</code> with dc-glob would fail with literal <code>*</code> name files (#18632)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18629" target="_blank" rel="noopener noreferrer">expanded paths for <code>--config-home</code> parameter also ensured xdg is absolute (#18629)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18619" target="_blank" rel="noopener noreferrer">disallowed <code>export main</code> from modules with keyword names (#18619)</a></li>
</ul>
</li>
<li>
<p>@pyz4:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18696" target="_blank" rel="noopener noreferrer">fixed date floor/ceil rounding for durations &gt;= 1day (#18696)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18694" target="_blank" rel="noopener noreferrer">bumped reedline to latest commit 83c17a2 (#18694)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18685" target="_blank" rel="noopener noreferrer">bumped reedline to latest commit (#18685)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18679" target="_blank" rel="noopener noreferrer">refactored idx: removed import/export, kept single live index (#18679)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18674" target="_blank" rel="noopener noreferrer">fixed idx: kept watched imports live (#18674)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18673" target="_blank" rel="noopener noreferrer">fixed idx: excluded tombstoned entries (#18673)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18636" target="_blank" rel="noopener noreferrer">avoided cloning list values for performance (#18636)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18671" target="_blank" rel="noopener noreferrer">updated to use CompletionResult (#18671)</a></li>
</ul>
</li>
<li>
<p>@ahmojo:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18666" target="_blank" rel="noopener noreferrer">fixed parser: restored scopes before interpolation fallback (#18666)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18663" target="_blank" rel="noopener noreferrer">updated terminal tests (#18663)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18651" target="_blank" rel="noopener noreferrer">updated some tests to use the new test infra (#18651)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18640" target="_blank" rel="noopener noreferrer">replaced built-in <code>date floor/ceil</code> commands with nu rewrites (#18640)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18650" target="_blank" rel="noopener noreferrer">added new duration_max_unit config option (#18650)</a></li>
</ul>
</li>
<li>
<p>@cablehead:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18625" target="_blank" rel="noopener noreferrer">fixed engine: preserved metadata and streams through early return (#18625)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18689" target="_blank" rel="noopener noreferrer">bumped aws-config from 1.8.15 to 1.10.0 (#18689)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18688" target="_blank" rel="noopener noreferrer">bumped actions/setup-python from 6 to 7 (#18688)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18687" target="_blank" rel="noopener noreferrer">bumped actions/labeler from 6 to 7 (#18687)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-07-24, including PRs merged Friday, 2026-07-17 through Thursday, 2026-07-23.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18701" target="_blank" rel="noopener noreferrer">added splashboard to .gitignore (#18701)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18695" target="_blank" rel="noopener noreferrer">bumped reedline dep to latest commit 7eb9bf2 (#18695)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18693" target="_blank" rel="noopener noreferrer">updated fff-search to 0.10.1 and tokio to 1.53.1 (#18693)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18683" target="_blank" rel="noopener noreferrer">updated agent.md (#18683)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18681" target="_blank" rel="noopener noreferrer">bumped nushell to latest reedline commit a2c6e124 (#18681)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18678" target="_blank" rel="noopener noreferrer">updated some dependencies (#18678)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18662" target="_blank" rel="noopener noreferrer">disallowed keywords from being shadowed (#18662)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18661" target="_blank" rel="noopener noreferrer">fixed <code>is-terminal</code> OS detection and added <code>is-redirected</code> for pipeline destinations (#18661)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18655" target="_blank" rel="noopener noreferrer">updated nushell to latest reedline commit (#18655)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18639" target="_blank" rel="noopener noreferrer">added <code>idx watch</code> command (#18639)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18632" target="_blank" rel="noopener noreferrer">fixed bug where <code>ls</code> with dc-glob would fail with literal <code>*</code> name files (#18632)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18629" target="_blank" rel="noopener noreferrer">expanded paths for <code>--config-home</code> parameter also ensured xdg is absolute (#18629)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18619" target="_blank" rel="noopener noreferrer">disallowed <code>export main</code> from modules with keyword names (#18619)</a></li>
</ul>
</li>
<li>
<p>@pyz4:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18696" target="_blank" rel="noopener noreferrer">fixed date floor/ceil rounding for durations &gt;= 1day (#18696)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18694" target="_blank" rel="noopener noreferrer">bumped reedline to latest commit 83c17a2 (#18694)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18685" target="_blank" rel="noopener noreferrer">bumped reedline to latest commit (#18685)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18679" target="_blank" rel="noopener noreferrer">refactored idx: removed import/export, kept single live index (#18679)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18674" target="_blank" rel="noopener noreferrer">fixed idx: kept watched imports live (#18674)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18673" target="_blank" rel="noopener noreferrer">fixed idx: excluded tombstoned entries (#18673)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18636" target="_blank" rel="noopener noreferrer">avoided cloning list values for performance (#18636)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18671" target="_blank" rel="noopener noreferrer">updated to use CompletionResult (#18671)</a></li>
</ul>
</li>
<li>
<p>@ahmojo:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18666" target="_blank" rel="noopener noreferrer">fixed parser: restored scopes before interpolation fallback (#18666)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18663" target="_blank" rel="noopener noreferrer">updated terminal tests (#18663)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18651" target="_blank" rel="noopener noreferrer">updated some tests to use the new test infra (#18651)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18640" target="_blank" rel="noopener noreferrer">replaced built-in <code>date floor/ceil</code> commands with nu rewrites (#18640)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18650" target="_blank" rel="noopener noreferrer">added new duration_max_unit config option (#18650)</a></li>
</ul>
</li>
<li>
<p>@cablehead:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18625" target="_blank" rel="noopener noreferrer">fixed engine: preserved metadata and streams through early return (#18625)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18689" target="_blank" rel="noopener noreferrer">bumped aws-config from 1.8.15 to 1.10.0 (#18689)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18688" target="_blank" rel="noopener noreferrer">bumped actions/setup-python from 6 to 7 (#18688)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18687" target="_blank" rel="noopener noreferrer">bumped actions/labeler from 6 to 7 (#18687)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2208" target="_blank" rel="noopener noreferrer">added ide_completion_menu (#2208)</a></li>
</ul>
</li>
<li>
<p>@ninjack-dev:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2207" target="_blank" rel="noopener noreferrer">fixed incorrect update date overriding publish date in Atom feed (#2207)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2206" target="_blank" rel="noopener noreferrer">fixed pubDate not being added to RSS entries (#2206)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@casedami:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/169" target="_blank" rel="noopener noreferrer">added nu_plugin_todu (#169)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>
<p>@HigherOrderLogic:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/210" target="_blank" rel="noopener noreferrer">preserved comments at the end of multiline pipeline (#210)</a></li>
<li><a href="https://github.com/nushell/nufmt/pull/209" target="_blank" rel="noopener noreferrer">added <code>clippy</code> to devShell (#209)</a></li>
</ul>
</li>
<li>
<p>@Mrfiregem:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/208" target="_blank" rel="noopener noreferrer">fixed: don't use exclusive range operator before step (#208)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1129" target="_blank" rel="noopener noreferrer">updated some dependencies (#1129)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1128" target="_blank" rel="noopener noreferrer">refactored prompt: used nu_ansi_term::Color throughout Prompt Trait (#1128)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1113" target="_blank" rel="noopener noreferrer">split Extend into CoverLanding vs Span (#1113)</a></li>
</ul>
</li>
<li>
<p>@casedami:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1125" target="_blank" rel="noopener noreferrer">fixed: dont expand abbr eagerly on submit (#1125)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1123" target="_blank" rel="noopener noreferrer">made Reedline aware of the status of completors (#1123)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1122" target="_blank" rel="noopener noreferrer">fixed for surfaced unlayout in Nushell (#1122)</a></li>
</ul>
</li>
<li>
<p>@easyinplay:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1121" target="_blank" rel="noopener noreferrer">fixed floor word_end to char boundary in abbreviation expansion (panic on multibyte char before cursor) (#1121)</a></li>
</ul>
</li>
<li>
<p>@eitsupi:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1112" target="_blank" rel="noopener noreferrer">added typed inherent methods and JSON filter to SqliteBackedHistory (#1112)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@nextgenthemes:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1271" target="_blank" rel="noopener noreferrer">fixed folder name (#1271)</a></li>
</ul>
</li>
<li>
<p>@AucaCoyan:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1270" target="_blank" rel="noopener noreferrer">replaced str downcase for str lowercase (#1270)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-07-24T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #360</title>
    <id>https://www.nushell.sh/blog/2026-07-17-twin0360.html</id>
    <link href="https://www.nushell.sh/blog/2026-07-17-twin0360.html"/>
    <updated>2026-07-17T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-07-24, including PRs merged Friday, 2026-07-10 through Thursday, 2026-07-16.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18628" target="_blank" rel="noopener noreferrer">fixed par-each hang bug (#18628)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18617" target="_blank" rel="noopener noreferrer">updated nushell to latest reedline commit (#18617)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18605" target="_blank" rel="noopener noreferrer">Reverted &quot;Add uutils <code>ln</code> command&quot; (#18605)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18603" target="_blank" rel="noopener noreferrer">fixed: stop <code>run</code> from trying to parse big non-text files (#18603)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18569" target="_blank" rel="noopener noreferrer">made <code>stor</code> and <code>query db</code> more thread-safe (#18569)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18566" target="_blank" rel="noopener noreferrer"><code>mut</code> and <code>par-each</code> optimizations for performance (#18566)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18559" target="_blank" rel="noopener noreferrer">added const eval in match arms (#18559)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18553" target="_blank" rel="noopener noreferrer">Added <code>matrix</code> commands (#18553)</a></li>
</ul>
</li>
<li>
<p>@pyz4:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18620" target="_blank" rel="noopener noreferrer">feat(date): added new commands <code>date floor</code> and <code>date ceil</code> (#18620)</a></li>
</ul>
</li>
<li>
<p>@pheenty:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18618" target="_blank" rel="noopener noreferrer">added lacy tool into the list of projects that support nushell (#18618)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18615" target="_blank" rel="noopener noreferrer">fixed: unsigned binary overflow in into int (#18615)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18572" target="_blank" rel="noopener noreferrer">perf: avoided cloning binary values (#18572)</a></li>
</ul>
</li>
<li>
<p>@coyaSONG:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18614" target="_blank" rel="noopener noreferrer">Migrated ulimit tests to the new harness (#8670) (#18614)</a></li>
</ul>
</li>
<li>
<p>@sid-6581:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18606" target="_blank" rel="noopener noreferrer">fixed: fix submodule import in test_docker.nu (#18606)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18604" target="_blank" rel="noopener noreferrer">Added <code>CompleteResult</code> type for working with <code>complete</code> in tests (#18604)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18582" target="_blank" rel="noopener noreferrer">Added <code>test_value!</code> macro (#18582)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18568" target="_blank" rel="noopener noreferrer">fixed: <code>uname</code> signature, and added detailed column info (#18568)</a></li>
</ul>
</li>
<li>
<p>@kobihikri:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18601" target="_blank" rel="noopener noreferrer">ci: pinned milestone-action to a full commit SHA (#18601)</a></li>
</ul>
</li>
<li>
<p>@m-novotny:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18599" target="_blank" rel="noopener noreferrer">Fixed default configuration links (#18598) (#18599)</a></li>
</ul>
</li>
<li>
<p>@drbrain:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18587" target="_blank" rel="noopener noreferrer">Allowed PluginCommand::get_dynamic_completion() to use EngineInterface::get_plugin_config() (#18587)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18586" target="_blank" rel="noopener noreferrer">Also triggered CI on <code>ready_for_review</code> (#18586)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18585" target="_blank" rel="noopener noreferrer">Removed all tests that use <code>nu_with_plugins!</code> (#18585)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18584" target="_blank" rel="noopener noreferrer">Stopped running CI for draft PRs (#18584)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18577" target="_blank" rel="noopener noreferrer">After patch release (#18577)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18575" target="_blank" rel="noopener noreferrer">Prepared patch release (#18575)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18570" target="_blank" rel="noopener noreferrer">Added test dependencies via test attribute <code>#[deps(...)]</code> (#18570)</a></li>
</ul>
</li>
<li>
<p>@alerque:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18581" target="_blank" rel="noopener noreferrer">Bumped pin of transient dependency causing unsound transmute (#18581)</a></li>
</ul>
</li>
<li>
<p>@dmatos2012:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18571" target="_blank" rel="noopener noreferrer">Added uutils <code>ln</code> command (#18571)</a></li>
</ul>
</li>
<li>
<p>@Mrfiregem:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18567" target="_blank" rel="noopener noreferrer">feat(<code>into semver</code>): added cell-path support (#18567)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18548" target="_blank" rel="noopener noreferrer">build(deps): bumped humantime from 2.3.0 to 2.4.0 (#18548)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-07-24, including PRs merged Friday, 2026-07-10 through Thursday, 2026-07-16.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18628" target="_blank" rel="noopener noreferrer">fixed par-each hang bug (#18628)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18617" target="_blank" rel="noopener noreferrer">updated nushell to latest reedline commit (#18617)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18605" target="_blank" rel="noopener noreferrer">Reverted &quot;Add uutils <code>ln</code> command&quot; (#18605)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18603" target="_blank" rel="noopener noreferrer">fixed: stop <code>run</code> from trying to parse big non-text files (#18603)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18569" target="_blank" rel="noopener noreferrer">made <code>stor</code> and <code>query db</code> more thread-safe (#18569)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18566" target="_blank" rel="noopener noreferrer"><code>mut</code> and <code>par-each</code> optimizations for performance (#18566)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18559" target="_blank" rel="noopener noreferrer">added const eval in match arms (#18559)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18553" target="_blank" rel="noopener noreferrer">Added <code>matrix</code> commands (#18553)</a></li>
</ul>
</li>
<li>
<p>@pyz4:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18620" target="_blank" rel="noopener noreferrer">feat(date): added new commands <code>date floor</code> and <code>date ceil</code> (#18620)</a></li>
</ul>
</li>
<li>
<p>@pheenty:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18618" target="_blank" rel="noopener noreferrer">added lacy tool into the list of projects that support nushell (#18618)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18615" target="_blank" rel="noopener noreferrer">fixed: unsigned binary overflow in into int (#18615)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18572" target="_blank" rel="noopener noreferrer">perf: avoided cloning binary values (#18572)</a></li>
</ul>
</li>
<li>
<p>@coyaSONG:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18614" target="_blank" rel="noopener noreferrer">Migrated ulimit tests to the new harness (#8670) (#18614)</a></li>
</ul>
</li>
<li>
<p>@sid-6581:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18606" target="_blank" rel="noopener noreferrer">fixed: fix submodule import in test_docker.nu (#18606)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18604" target="_blank" rel="noopener noreferrer">Added <code>CompleteResult</code> type for working with <code>complete</code> in tests (#18604)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18582" target="_blank" rel="noopener noreferrer">Added <code>test_value!</code> macro (#18582)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18568" target="_blank" rel="noopener noreferrer">fixed: <code>uname</code> signature, and added detailed column info (#18568)</a></li>
</ul>
</li>
<li>
<p>@kobihikri:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18601" target="_blank" rel="noopener noreferrer">ci: pinned milestone-action to a full commit SHA (#18601)</a></li>
</ul>
</li>
<li>
<p>@m-novotny:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18599" target="_blank" rel="noopener noreferrer">Fixed default configuration links (#18598) (#18599)</a></li>
</ul>
</li>
<li>
<p>@drbrain:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18587" target="_blank" rel="noopener noreferrer">Allowed PluginCommand::get_dynamic_completion() to use EngineInterface::get_plugin_config() (#18587)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18586" target="_blank" rel="noopener noreferrer">Also triggered CI on <code>ready_for_review</code> (#18586)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18585" target="_blank" rel="noopener noreferrer">Removed all tests that use <code>nu_with_plugins!</code> (#18585)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18584" target="_blank" rel="noopener noreferrer">Stopped running CI for draft PRs (#18584)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18577" target="_blank" rel="noopener noreferrer">After patch release (#18577)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18575" target="_blank" rel="noopener noreferrer">Prepared patch release (#18575)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18570" target="_blank" rel="noopener noreferrer">Added test dependencies via test attribute <code>#[deps(...)]</code> (#18570)</a></li>
</ul>
</li>
<li>
<p>@alerque:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18581" target="_blank" rel="noopener noreferrer">Bumped pin of transient dependency causing unsound transmute (#18581)</a></li>
</ul>
</li>
<li>
<p>@dmatos2012:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18571" target="_blank" rel="noopener noreferrer">Added uutils <code>ln</code> command (#18571)</a></li>
</ul>
</li>
<li>
<p>@Mrfiregem:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18567" target="_blank" rel="noopener noreferrer">feat(<code>into semver</code>): added cell-path support (#18567)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18548" target="_blank" rel="noopener noreferrer">build(deps): bumped humantime from 2.3.0 to 2.4.0 (#18548)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@Kissaki:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2205" target="_blank" rel="noopener noreferrer">Added missing code fencing in lang-guide pipelines.md (#2205)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2204" target="_blank" rel="noopener noreferrer">Fixed code fencing (#2204)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2203" target="_blank" rel="noopener noreferrer">Consistently used present tense (#2203)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2202" target="_blank" rel="noopener noreferrer">For semicolon stdout redirection, contrasted external to internal (#2202)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2201" target="_blank" rel="noopener noreferrer">Fixed fr typo (#2201)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2200" target="_blank" rel="noopener noreferrer">Fixed outdated output redirection docs (#2200)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2197" target="_blank" rel="noopener noreferrer">Added missing word in v0.110.0 post (#2197)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2198" target="_blank" rel="noopener noreferrer">Added release notes for <code>v0.114.1</code> (#2198)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@idanarye:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/168" target="_blank" rel="noopener noreferrer">Added nu_plugin_handlebars (#168)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/206" target="_blank" rel="noopener noreferrer">fixed ci build problem (#206)</a></li>
</ul>
</li>
<li>
<p>@KP64:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/205" target="_blank" rel="noopener noreferrer">chore: added nix metadata (#205)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@maxim-uvarov:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1118" target="_blank" rel="noopener noreferrer">Added <code>with_persistent_menus</code> option (#1118)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1117" target="_blank" rel="noopener noreferrer">Added asynchronous prompt updates (#1117)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1268" target="_blank" rel="noopener noreferrer">feat(<code>task</code>): printed actual command in log (#1268)</a></li>
</ul>
</li>
<li>
<p>@alightgoesout:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1267" target="_blank" rel="noopener noreferrer">Updated jj completions for version 0.43.0 (#1267)</a></li>
</ul>
</li>
</ul>
<h2>NUPM</h2>
<ul>
<li>@neurolag:
<ul>
<li><a href="https://github.com/nushell/nupm/pull/136" target="_blank" rel="noopener noreferrer">Migrated to New Commands (#136)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-07-17T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">Nushell 0.114.1</title>
    <id>https://www.nushell.sh/blog/2026-07-11-nushell_v0_114_1.html</id>
    <link href="https://www.nushell.sh/blog/2026-07-11-nushell_v0_114_1.html"/>
    <updated>2026-07-11T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[<!-- TODO: complete the excerpt above -->
<!-- NOTE: start from the TODO all the way at the bottom (and sort of work your way up) -->
<h1>Nushell 0.114.1</h1>
<p>Today, we're releasing version 0.114.1 of Nu. This patch release fixes issues found after <code>enforce-runtime-annotations</code> became opt-out in the last version, improving runtime type checks and error reporting.</p>]]></summary>
    <content type="html"><![CDATA[<!-- TODO: complete the excerpt above -->
<!-- NOTE: start from the TODO all the way at the bottom (and sort of work your way up) -->
<h1>Nushell 0.114.1</h1>
<p>Today, we're releasing version 0.114.1 of Nu. This patch release fixes issues found after <code>enforce-runtime-annotations</code> became opt-out in the last version, improving runtime type checks and error reporting.</p>
<h1>Where to get it</h1>
<p>Nu 0.114.1 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.114.1" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Highlights and themes of this release </h1>
<!-- NOTE: if you wanna write a section about a breaking change, when it's a very important one,
    please add the following snippet to have a "warning" banner :)
    > see [an example](https://www.nushell.sh/blog/2023-09-19-nushell_0_85_0.html#pythonesque-operators-removal)

    ```md
    ::: warning Breaking change
    See a full overview of the [breaking changes](#breaking-changes)
    :::
    ```
-->
<!-- NOTE: see https://vuepress.github.io/reference/default-theme/markdown.html#custom-containers
    for the list of available *containers*
-->
<h2>Follow-up fixes for runtime annotation checks </h2>
<p>In <a href="/blog/2026-07-04-nushell_v0_114_0.html" target="_blank">Nushell 0.114.0</a>, we promoted <a href="https://github.com/nushell/nushell/issues/16832" target="_blank" rel="noopener noreferrer"><code>enforce-runtime-annotations</code></a> from an opt-in experimental option to an opt-out experimental option. That is the usual path for experimental options: more people try them, we get better feedback, and the feature gets closer to being stable.</p>
<p>As expected, that wider testing found some rough edges. Some came from invalid signatures, some from type checks that were too strict, and some from checks that were simply not accurate enough. We are tracking those reports in <a href="https://github.com/nushell/nushell/issues/18528" target="_blank" rel="noopener noreferrer">issue #18528</a>, and this patch release fixes a number of them, mostly thanks to <a href="https://github.com/Bahex" target="_blank" rel="noopener noreferrer">@Bahex</a>. Thank you!</p>
<p>More issues may still turn up. Please report them if you run into anything suspicious. If <code>enforce-runtime-annotations</code> blocks your workflow, you can disable just that option before Nushell starts:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">NU_EXPERIMENTAL_OPTIONS</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">=</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">enforce-runtime-annotations=false</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> nu</span></span></code></pre>
</div><p>Or pass it as a command-line flag:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">experimental-options</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> enforce-runtime-annotations=false</span></span></code></pre>
</div><p>See the <a href="https://docs.rs/nu-experimental/latest/nu_experimental/#for-users" target="_blank" rel="noopener noreferrer"><code>nu-experimental</code> user documentation</a> for more details.</p>
<p>We still encourage everyone to keep as many experimental options enabled as possible. It helps us find bugs earlier and make Nushell better for future releases.</p>
<h1>Changes </h1>
<h2>Bug fixes </h2>
<h3>More helpful errors for failed assignments with <code>enforce-runtime-annotations</code>  </h3>
<p>With <code>enforce-runtime-annotations</code> enabled, assignments with incorrect types raise errors.</p>
<p>Previously this error was <code>nu::shell::cant_convert</code> originally used for unsuccessful type coercions of command arguments. Unfortunately, this error only pointed at the assigned values <em>origin</em> and not at the failed assignment.</p>
<p>This error has been switched to <code>nu::shell::type_mismatch</code> and now points to the failed assignment in addition to the value's origin.</p>
<h5>Example 1</h5>
<table>
<tr>
<td>Code</td>
<td width="1000">
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">mut</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> execution_time</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> -1</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$execution_time</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B"> $env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.CMD_DURATION_MS</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div></div></div></td>
</tr>
<tr>
<td>Before</td>
<td>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::cant_convert</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Can't convert to int.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">Host Environment Variables:1:1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "ALLUSERSPROFILE"="C:\\ProgramData"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">▲</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── can't convert string to int</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "ANDROID_AVD_HOME"="B:\\AndroidAVDs"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div></td>
</tr>
<tr>
<td>After</td>
<td>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::type_mismatch</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Type mismatch.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #3:1:17</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ $execution_time = $env.CMD_DURATION_MS</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                ┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                 </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── expected int, got string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div></td>
</tr>
</table>
<h5>Example 2</h5>
<table>
<tr>
<td>Code</td>
<td width="1000">
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># delibarete type erasure</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># we need to bypass parse-time</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># type checking for this example</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> stuff:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> any</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">	foo</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "bar"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">mut</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $stuff.foo</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></td>
</tr>
<tr>
<td>Before</td>
<td>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::cant_convert</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Can't convert to int.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #5:1:24</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ let stuff: any = {foo: "bar"}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                       ──┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                          </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── can't convert string to int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div></td>
</tr>
<tr>
<td>After</td>
<td>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::type_mismatch</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Type mismatch.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #5:1:24</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ let stuff: any = {foo: "bar"}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                       ──┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                          </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── the value is a string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #7:1:4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ $x = $stuff.foo</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">   ┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·    </span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">╰── expected int, got string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div></td>
</tr>
</table>
<h3>Closure's input type is not inherited from the surrounding scope  </h3>
<p>With last release, pipeline input type and how it affects various expressions are being tracked in a lot more cases.</p>
<p>In fact, at least one too many:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> mk-add-suffix</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">suffix</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nothing</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> -> </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">closure</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">	{|| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$in</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ++</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $suffix</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::operator_unsupported_type</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> The '++' operator does not work on values of type 'nothing'.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #8:2:5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ def mk-add-suffix [suffix: string]: nothing -> closure {</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ {|| $in ++ $suffix }}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">    ─┬─</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ─┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">   ╰── does not support 'nothing'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── nothing</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div><p>This is now fixed, and closures' input type will be inferred as <code>any</code>, the way it was before <code>0.114.0</code>.</p>
<h3>Add list input type to more date commands  </h3>
<p>Allow more <code>date</code> commands to have a list as <code>input -&gt; output</code>. These are the commands that were updated:</p>
<ul>
<li><code>date humanize</code></li>
<li><code>date from-human</code></li>
<li><code>date to-timezone</code></li>
<li><code>format date</code></li>
<li><code>into datetime</code></li>
</ul>
<h3>Other fixes </h3>
<ul>
<li>Fixed <code>input listen</code>'s output type signature to match actual returned value. With the incorrect signature (and <code>enforce-runtime-annotations</code> on) <code>let x = input listen</code> would raise an error due to <code>$x</code>'s inferred type (based on <code>input listen</code>'s signature) not matching the value assigned to it. </li>
<li>Type checking treats <code>table</code> and <code>list&lt;record&gt;</code> as compatible (provided the columns aren't disjoint), but that did not extend to <code>list&lt;oneof&lt;record, ...&gt;&gt;</code>. This has been fixed. </li>
<li>Runtime type checking of <em>non-stream</em> pipeline data is now more accurate. </li>
<li>Fixed <code>uname</code>'s output type signature to match its actual output. Previously it was <code>table</code>, now it's <code>record&lt;...&gt;</code> and also includes its columns. </li>
<li>Fixed an issue where <code>run script.nu --some-flag</code> could bind the value to the wrong flag of the script's <code>main</code> when <code>main</code> declared multiple flags, causing shifted positional arguments or a value being accepted into a flag of the wrong type. Flags passed to <code>run</code> are now matched to <code>main</code> parameters by name. (<a href="https://github.com/nushell/nushell/pull/18533" target="_blank" rel="noopener noreferrer">#18533</a>)</li>
<li>Fixed an incorrect <code>idx search --help</code> example. (<a href="https://github.com/nushell/nushell/pull/18550" target="_blank" rel="noopener noreferrer">#18550</a>)</li>
<li>Type checking of lists are relaxed. (<a href="https://github.com/nushell/nushell/pull/18555" target="_blank" rel="noopener noreferrer">#18555</a>)</li>
<li>Fixed an issue in <code>for</code> loops where type of the looping variable was inferred incorrectly when iterating over a value/stream with a union type (<code>oneof&lt;list, table, binary&gt;</code>). This could manifest as a runtime type checking error with <code>enforce-runtime-annotations</code> enabled. (<a href="https://github.com/nushell/nushell/pull/18551" target="_blank" rel="noopener noreferrer">#18551</a>)</li>
</ul>
<h1>Hall of fame </h1>
<p>Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏</p>
<p>| author                                         | change                                                                  | link                                                    |
|</p>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-07-11T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #359</title>
    <id>https://www.nushell.sh/blog/2026-07-10-twin0359.html</id>
    <link href="https://www.nushell.sh/blog/2026-07-10-twin0359.html"/>
    <updated>2026-07-10T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-07-24, including PRs merged Friday, 2026-07-03 through Thursday, 2026-07-09.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18560" target="_blank" rel="noopener noreferrer">fixed type comparisons between <code>table</code> and <code>list&lt;oneof&gt;</code> (#18560)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18555" target="_blank" rel="noopener noreferrer">relaxed assignability of list types (#18555)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18540" target="_blank" rel="noopener noreferrer">fixed closure's input type to not inherit from scope (#18540)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18535" target="_blank" rel="noopener noreferrer">fixed <code>input listen</code>'s output type (#18535)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18531" target="_blank" rel="noopener noreferrer">fixed assignment errors to point to the assignment (#18531)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18516" target="_blank" rel="noopener noreferrer">added <code>from xlsx/ods</code> datetime fixes (#18516)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18554" target="_blank" rel="noopener noreferrer">updated crossbeam crates via <code>cargo update</code> (#18554)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18524" target="_blank" rel="noopener noreferrer">prepared release (#18524)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18517" target="_blank" rel="noopener noreferrer">fixed locally running test suite by disabling colors (#18517)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18551" target="_blank" rel="noopener noreferrer">fixed parser to infer for loop items from iterable unions (#18551)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18550" target="_blank" rel="noopener noreferrer">fixed search context help example in idx (#18550)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18536" target="_blank" rel="noopener noreferrer">added list input type to more date commands (#18536)</a></li>
</ul>
</li>
<li>
<p>@hexbinoct:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18533" target="_blank" rel="noopener noreferrer">fixed <code>run</code> binding that forwarded flags to the wrong parameter (#18533)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18530" target="_blank" rel="noopener noreferrer">fixed MCP to initialize <code>start_time</code> only in MCP mode to avoid cargo warning (#18530)</a></li>
</ul>
</li>
<li>
<p>@stormasm:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18518" target="_blank" rel="noopener noreferrer">added &quot;nu-test-support/os&quot; to dev dependencies (#18518)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-07-24, including PRs merged Friday, 2026-07-03 through Thursday, 2026-07-09.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18560" target="_blank" rel="noopener noreferrer">fixed type comparisons between <code>table</code> and <code>list&lt;oneof&gt;</code> (#18560)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18555" target="_blank" rel="noopener noreferrer">relaxed assignability of list types (#18555)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18540" target="_blank" rel="noopener noreferrer">fixed closure's input type to not inherit from scope (#18540)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18535" target="_blank" rel="noopener noreferrer">fixed <code>input listen</code>'s output type (#18535)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18531" target="_blank" rel="noopener noreferrer">fixed assignment errors to point to the assignment (#18531)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18516" target="_blank" rel="noopener noreferrer">added <code>from xlsx/ods</code> datetime fixes (#18516)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18554" target="_blank" rel="noopener noreferrer">updated crossbeam crates via <code>cargo update</code> (#18554)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18524" target="_blank" rel="noopener noreferrer">prepared release (#18524)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18517" target="_blank" rel="noopener noreferrer">fixed locally running test suite by disabling colors (#18517)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18551" target="_blank" rel="noopener noreferrer">fixed parser to infer for loop items from iterable unions (#18551)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18550" target="_blank" rel="noopener noreferrer">fixed search context help example in idx (#18550)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18536" target="_blank" rel="noopener noreferrer">added list input type to more date commands (#18536)</a></li>
</ul>
</li>
<li>
<p>@hexbinoct:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18533" target="_blank" rel="noopener noreferrer">fixed <code>run</code> binding that forwarded flags to the wrong parameter (#18533)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18530" target="_blank" rel="noopener noreferrer">fixed MCP to initialize <code>start_time</code> only in MCP mode to avoid cargo warning (#18530)</a></li>
</ul>
</li>
<li>
<p>@stormasm:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18518" target="_blank" rel="noopener noreferrer">added &quot;nu-test-support/os&quot; to dev dependencies (#18518)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@Kissaki:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2196" target="_blank" rel="noopener noreferrer">improved v0.114.0 release post text (#2196)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2195" target="_blank" rel="noopener noreferrer">updated 0.114 release notes for structured MCP output (#2195)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2193" target="_blank" rel="noopener noreferrer">fixed overflowing content on 0.114 blog post (#2193)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2192" target="_blank" rel="noopener noreferrer">prepared release notes for v0.114.0 (#2192)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2191" target="_blank" rel="noopener noreferrer">upgraded vuepress and related plugins (#2191)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2190" target="_blank" rel="noopener noreferrer">refreshed command docs for v0.114 (#2190)</a></li>
</ul>
</li>
</ul>
<h2>nufmt</h2>
<ul>
<li>
<p>@xav-ie:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/203" target="_blank" rel="noopener noreferrer">fixed comment loss and misplacement in match arms, nested records, and raw strings (#203)</a></li>
</ul>
</li>
<li>
<p>@momomuchu:</p>
<ul>
<li><a href="https://github.com/nushell/nufmt/pull/202" target="_blank" rel="noopener noreferrer">tracked single-quoted strings and skipped comments when detecting missing record commas (#202)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>@cptpiepmatz:
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1116" target="_blank" rel="noopener noreferrer">bumped minor version (#1116)</a></li>
</ul>
</li>
</ul>
<h2>Integrations</h2>
<ul>
<li>@weirdan:
<ul>
<li><a href="https://github.com/nushell/integrations/pull/76" target="_blank" rel="noopener noreferrer">imported entire <code>std/assert</code> module (#76)</a></li>
</ul>
</li>
</ul>
<h2>NUPM</h2>
<ul>
<li>@neurolag:
<ul>
<li><a href="https://github.com/nushell/nupm/pull/135" target="_blank" rel="noopener noreferrer">fixed nushell 114 (#135)</a></li>
<li><a href="https://github.com/nushell/nupm/pull/134" target="_blank" rel="noopener noreferrer">fixed Git Registry installations (#134)</a></li>
</ul>
</li>
</ul>
<h2>VSCode Extension</h2>
<ul>
<li>@mst-mkt:
<ul>
<li><a href="https://github.com/nushell/vscode-nushell-lang/pull/234" target="_blank" rel="noopener noreferrer">fixed syntax highlighting for variable declarations with type annotations (#234)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-07-10T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">Nushell 0.114.0</title>
    <id>https://www.nushell.sh/blog/2026-07-04-nushell_v0_114_0.html</id>
    <link href="https://www.nushell.sh/blog/2026-07-04-nushell_v0_114_0.html"/>
    <updated>2026-07-04T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Today, we're releasing version 0.114.0 of Nu. This release brings sharper type checking, POSIX-style <code>--</code> option parsing, the new <code>run</code> command for pipeline-friendly scripts, and nice built-in support for working with Semantic Versioning.</p>
<h1>Where to get it</h1>
<p>Nu 0.114.0 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.114.0" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>]]></summary>
    <content type="html"><![CDATA[
<p>Today, we're releasing version 0.114.0 of Nu. This release brings sharper type checking, POSIX-style <code>--</code> option parsing, the new <code>run</code> command for pipeline-friendly scripts, and nice built-in support for working with Semantic Versioning.</p>
<h1>Where to get it</h1>
<p>Nu 0.114.0 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.114.0" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Highlights and themes of this release </h1>
<h2>The type checker got new glasses </h2>
<p><a href="https://github.com/Bahex" target="_blank" rel="noopener noreferrer">@Bahex</a> continued tightening up Nushell's type system this release. Commands can now infer output types from pipeline input more precisely, <code>$in</code> gets typed from the surrounding pipeline, optional values carry their <code>nothing</code>-ness more honestly, and <code>let</code> bindings in pipelines no longer have to shrug and call everything <code>any</code>.</p>
<p>This means some mistakes move from &quot;surprise, runtime error&quot; to &quot;hey, maybe fix that before running it&quot;. Very rude of the parser, but also very helpful.</p>
<p>There is also one important default change: <code>enforce-runtime-annotations</code> is now opt-out, so runtime assignment annotations get checked by default.</p>
<p>Read the details in the first <a href="#type-system-improvements-1">type system entry</a>, the second <a href="#type-system-improvements">type system entry</a>, and the note about <a href="#promoted-enforce-runtime-annotations-to-opt-out"><code>enforce-runtime-annotations</code></a>.</p>
<h2><code>--</code> means &quot;no really, stop parsing flags&quot; </h2>
<p>Thanks to <a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a>, Nushell commands now understand the classic POSIX <code>--</code> end-of-options delimiter. If you need to pass <code>-weird</code>, <code>--looks-like-a-flag</code>, or similar gremlins as plain positional values, you can now do that without trying to outsmart the parser.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> greet</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic">--</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">upper</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] { </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">if</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $upper</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> uppercase</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } }</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">greet</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> -</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">-</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> -</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">Alice</span></span></code></pre>
</div><p>That <code>-Alice</code> is now just Alice having a dash day, not an accidental flag.</p>
<p>Take a look at the main <a href="#added-posix-style-option-parsing-for-nushell-commands"><code>--</code> option parsing entry</a> and the follow-up <a href="#fixed-a-bug-in-option-parsing"><code>--wrapped</code> fix</a>.</p>
<h2>Scripts can join the pipeline with <code>run</code> </h2>
<p>The new <code>run</code> command from <a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a> lets a Nushell script behave like a pipeline stage. Pipe data in, let the script transform it, and pipe the result onward. Tiny reusable pipeline workers, basically.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"Hello Nushell!"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> run</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> shout.nu</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str camel-case</span></span></code></pre>
</div><p>Scripts can be simple bare pipeline transforms or define a <code>main</code> entry point, and they run in isolation so their local bits do not leak back into your session.</p>
<p>See more examples <a href="#added-run-command-for-using-scripts-in-pipelines">here</a>.</p>
<h2>SemVer is a real value now </h2>
<p>Nushell now has semantic version support, also from <a href="https://github.com/fdncred" target="_blank" rel="noopener noreferrer">@fdncred</a>. You can parse SemVer strings, turn them into records, build them back up, sort them correctly, and bump versions without doing string surgery with safety scissors.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'1.2.3-alpha.1'</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> semver</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> semver</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> bump</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> release</span></span></code></pre>
</div><p>If your scripts deal with releases, package versions, or &quot;is <code>1.10.0</code> bigger than <code>1.2.0</code>?&quot; moments, this should make life nicer.</p>
<p>Read the full SemVer tour <a href="#added-semantic-version-parsing-and-commands">here</a>.</p>
<h1>Changes </h1>
<h2>Breaking changes </h2>
<h3>Submodules are no longer implicitly imported  </h3>
<p>Importing a module no longer implicitly imports its exported sub-modules.</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">export module</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    export def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> bar</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    export module</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> sub</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">        export def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> baz</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {}</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">use</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">foo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> bar</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">      # valid</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">foo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> sub</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> baz</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # invalid, `sub` is not implicitly imported</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>To have your modules keep the old behavior, you will need to export the module's contents explicitly:</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">export module</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    export def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> bar</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    export module</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> sub</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">        export def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> baz</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {}</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    }</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">    export use</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> sub</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">use</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> foo</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">foo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> bar</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">      # valid</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">foo</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> sub</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> baz</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # valid</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="hint-container note">
<p class="hint-container-title">Note</p>
<p><code>use</code>ing a module inside another module does <em>not</em> run the imported module's <code>export-env</code> block.
<br>
(See <a href="https://www.nushell.sh/book/modules/creating_modules.html#export-env-runs-only-when-the-use-call-is-evaluated" target="_blank" rel="noopener noreferrer"><code>export-env</code> runs only when the use call is evaluated</a>)
<br>
Thus, explicit <code>use</code>s as recommended above will not run <code>export-env</code> blocks, which is inline with how the previous implicit imports worked.</p>
</div>
<h3>Type System Improvements  </h3>
<p>This release comes with a handful of improvements to the type system, specifically the parse-time type checking. But beware! Type annotations that previously seemed fine might raise errors, as they might have been passing only because typing information was insufficient to check it at parse time.</p>
<h4>Commands' output types are now inferred based on pipeline input type.</h4>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> str</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "foo"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> uppercase</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> str_list</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"foo"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"bar"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> ] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> str</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> uppercase</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">scope variables</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> where</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> starts-with</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '$str'</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> select</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> type</span></span></code></pre>
</div><div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); row-gap: 2rem; justify-items: center;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────┬──────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> #</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───────────┼──────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> $str</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> any</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> $str_list</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> any</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────┴──────╯</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────┬──────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> #</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">     type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───────────┼──────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> $str</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> string</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> $str_list</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> list&#x3C;string></span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────┴──────────────╯</span></span></code></pre>
</div>
</div></div>
</div>
<h4>Optional parameters' type now reflects the fact it might be <code>null</code></h4>
<p>The (parse time) types of optional parameters and flags <em>without a default value</em> are now a union of their type <code>T</code> and <code>nothing</code></p>
<ul>
<li>with no default value the type is <code>oneof&lt;T, nothing&gt;</code></li>
<li>with a default value type is <code>T</code></li>
</ul>
<p>Demonstrating with LSP inlay hints:</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before - Optional Parameter">
    <span>Before - Optional Parameter</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    1</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">  def</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA"> foo</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> [</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C">opt_param</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">?:</span><span style="color:#f0a45d;--shiki-light:#F5F543;--shiki-dark:#F5F543"> int</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">]</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> {</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    2</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">    let</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> var</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666">:</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666"> int</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> =</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C"> $</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">opt_param</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    3</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">  }</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    ~</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After - Optional Parameter">
    <span>After - Optional Parameter</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    1</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">  def</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA"> foo</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> [</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C">opt_param</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">?:</span><span style="color:#f0a45d;--shiki-light:#F5F543;--shiki-dark:#F5F543"> int</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">]</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> {</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    2</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">    let</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> var</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666">:</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666"> oneof&#x3C;int,</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666"> nothing></span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> =</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C"> $</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">opt_param</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    3</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">  }</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    ~</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After - Default Parameter">
    <span>After - Default Parameter</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    1</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">  def</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA"> foo</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> [</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C">opt_param</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">?:</span><span style="color:#f0a45d;--shiki-light:#F5F543;--shiki-dark:#F5F543"> int</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> =</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> 42</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">]</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> {</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    2</span><span style="color:#de73ff;--shiki-light:#D670D6;--shiki-dark:#D670D6">    let</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> var</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666">:</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666"> int</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5"> =</span><span style="color:#ff616e;--shiki-light:#F14C4C;--shiki-dark:#F14C4C"> $</span><span style="color:#4dc4ff;--shiki-light:#3B8EEA;--shiki-dark:#3B8EEA">opt_param</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    3</span><span style="color:#d7dae0;--shiki-light:#E5E5E5;--shiki-dark:#E5E5E5">  }</span></span>
<span class="line"><span style="color:#4f566680;--shiki-light:#66666680;--shiki-dark:#66666680">    ~</span></span></code></pre>
</div>
</div><h4>More precise type widening</h4>
<p>More type information is preserved. e.g.:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> list</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [[</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"a"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "b"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "c"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] [</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]]</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">let</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> elem</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $list.0</span></span></code></pre>
</div><p>Previously, <code>$elem</code>'s type would be <code>list&lt;oneof&lt;int, string&gt;&gt;</code>, now <code>$elem</code>'s type is <code>oneof&lt;list&lt;int&gt;, list&lt;string&gt;&gt;</code>.</p>
<h4>Operator type checking now accounts for <code>oneof</code> types</h4>
<p>Nushell as a language tries to strike a careful balance between correctness and convenience.
One should be able to trust nu's type system will help them write correct and robust scripts, but nu shouldn't get in the way of a nice REPL experience.</p>
<p>Because of that, some operations that might be invalid but aren't definitely so do not raise parse errors and such checks are delegated to runtime.</p>
<p>For example, <code>int</code>'s can only be added with <code>int</code>'s and <code>float</code>'s, yet the following code does not raise a parse-time error.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">anything</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">any</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    10</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $anything</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><p>But previously, despite <code>oneof&lt;int, nothing&gt;</code> being more specific than <code>any</code>, it would be rejected by the type checker for addition to <code>int</code>s.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">maybe_int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">oneof</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">&#x3C;</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">nothing</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">>] {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    10</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $maybe_int</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::operator_unsupported_type</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> The '+' operator does not work on values of type 'oneof&#x3C;int, nothing>'.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #2:2:8</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ def foo [maybe_int: oneof&#x3C;int, nothing>] {</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │     10 + $maybe_int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">       ┬</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ─────┬────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·        </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">      ╰── oneof&#x3C;int, nothing></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·        </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── does not support 'oneof&#x3C;int, nothing>'</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div><p>Now, as long as the two operands have a possibility of being valid for an operation the parse-time type checker will accept the expression, leaving errors to runtime type checking.</p>
<h3>Promoted <code>enforce-runtime-annotations</code> to opt-out  </h3>
<p>In Nushell 0.108.0, <a href="https://www.nushell.sh/blog/2025-10-15-nushell_v0_108_0.html#enforce-assignment-type-annotations-at-runtime-16079-toc" target="_blank" rel="noopener noreferrer"><code>enforce-runtime-annotations</code></a> experimental option was added. With this release <code>enforce-runtime-annotations</code> is promoted to being opt-out, meaning that by default this experimental option is enabled now.</p>
<p>This option enforces type checking of let assignments at runtime, catching type errors that might have been missed in parse-time type checking due to insufficient type information.</p>
<p>If you experience any trouble with this, you can disable it via the command-line argument:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">experimental-options</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '[enforce-runtime-annotations=false]'</span></span></code></pre>
</div><p>or via the environment variable:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">NU_EXPERIMENTAL_OPTIONS</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">=</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"enforce-runtime-annotations=false"</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> nu</span></span></code></pre>
</div><h3>Reedline vi mode improvements  </h3>
<p>Vi mode now has a proper visual mode: press <code>v</code> to start a selection, then use motions together with <code>d</code>, <code>c</code>, <code>y</code>,
or <code>r</code>, including selections that span multiple lines.
In vi normal mode, the caret now rests on the last grapheme instead of after it,
and <code>h</code> and <code>l</code> can move across line boundaries.
Visual mode also has its own prompt indicator, which defaults to the vi-normal
indicator.</p>
<h3>Changes to spreadsheet commands: <code>from xlsx</code> &amp; <code>from ods</code>  </h3>
<p>This release comes with various improvements to <code>from xlsx</code> and <code>from ods</code> commands, and makes them behave as similarly as the file formats themselves allow.</p>
<h4>More accurate command signatures</h4>
<p>These commands' signatures previously incorrectly indicated that they return tables.
They return <em>records</em> that contain <em>tables</em>, with a table for each sheet in the file.</p>
<p>Also, the signature of the <code>from ods</code> command previously had <code>string</code> as its input type rather than <code>binary</code>. This has been fixed.</p>
<h4>Support for more data types</h4>
<p>Previously, importing <code>datetime</code> values were supported only for <code>xlsx</code> files.</p>
<p>This release not only adds that for <code>ods</code> files as well, but also broadens the <code>datetime</code> formats that can be imported.</p>
<p>Aside from that, values that couldn't be properly coerced to nushell types were simply imported as <code>null</code>. Now those values are imported as <code>string</code> or <code>float</code> depending on the source data.</p>
<h4>Finer control over spreadsheet headers</h4>
<p>Last release changed <code>from xlsx</code> to use the first row of a sheet as the imported table's headers, and added a new flag, <code>--header-row</code>, to control which row should be used as the header or if any row should become the headers at all.</p>
<p>This release removes it.</p>
<p>Don't worry! Instead of the <code>--header-row</code> flag, <code>from xlsx</code> <em>and</em> <code>from ods</code> get two new flags that will provide finer control over how spreadsheets are imported:</p>
<ul>
<li><code>--noheaders</code>: What it says on the tin, identical to the same flag on <code>from csv</code>, <code>from tsv</code> and <code>from ssv</code> commands.</li>
<li><code>--first-row</code>: This is where it gets a little interesting. <code>from xlsx</code> and <code>from ods</code> skip reading all leading empty rows. This is how it has worked for a long time.
<code>--first-row=0</code> allows you to turn that off and keep those empty lines. It can also be used to start reading from an arbitrary row: <code>--first-row $n</code></li>
</ul>
<p>Let's see how this works with an example:</p>
<ul>
<li>The contents of the file, with all the conveniences like skipping empty rows or auto headers off:<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> example.xlsx</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">raw</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from xlsx</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">noheaders</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">first-row</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────┬───────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╭───┬─────────┬─────────┬─────────┬─────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Sheet1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ├───┼─────────┼─────────┼─────────┼─────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │         │         │         │         │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │         │         │         │         │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │         │         │         │         │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ a       │ b       │ c       │ d       │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │    0.00 │    1.00 │    2.00 │    3.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   10.00 │   11.00 │   12.00 │   13.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   20.00 │   21.00 │   22.00 │   23.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">7</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   30.00 │   31.00 │   32.00 │   33.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╰───┴─────────┴─────────┴─────────┴─────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────┴───────────────────────────────────────────────╯</span></span></code></pre>
</div></li>
<li>How it is imported by default:<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> example.xlsx</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># or `open example.xlsx --raw | from xlsx`</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────┬───────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╭───┬───────┬───────┬───────┬───────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Sheet1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">b</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">c</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">d</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ├───┼───────┼───────┼───────┼───────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  0.00 │  1.00 │  2.00 │  3.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 10.00 │ 11.00 │ 12.00 │ 13.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 20.00 │ 21.00 │ 22.00 │ 23.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 30.00 │ 31.00 │ 32.00 │ 33.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╰───┴───────┴───────┴───────┴───────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────┴───────────────────────────────────────╯</span></span></code></pre>
</div>Most of the time, this is what you want.</li>
<li>Or if your file doesn't have any headers and all the rows are data:<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">open</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> example.xlsx</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">raw</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> from xlsx</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">noheaders</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────┬───────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╭───┬─────────┬─────────┬─────────┬─────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Sheet1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ├───┼─────────┼─────────┼─────────┼─────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ a       │ b       │ c       │ d       │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │    0.00 │    1.00 │    2.00 │    3.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   10.00 │   11.00 │   12.00 │   13.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   20.00 │   21.00 │   22.00 │   23.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   30.00 │   31.00 │   32.00 │   33.00 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│        │ ╰───┴─────────┴─────────┴─────────┴─────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────┴───────────────────────────────────────────────╯</span></span></code></pre>
</div></li>
</ul>
<h3>Type System Improvements  </h3>
<h4>Typed <code>$in</code></h4>
<p><code>$in</code> variable is now typed based on the pipeline input type of the surrounding expression.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before. Error is caught at runtime.">
    <span>Before. Error is caught at runtime.</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::operator_incompatible_types</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Types 'int' and 'string' are not compatible for the '+' operator.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">source:1:5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 | $in + "foo"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">    ─┬─</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ┬</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> ──┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">  │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   ╰── </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">  ╰── </span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">does not operate between 'int' and 'string'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After. Error is caught at parse time.">
    <span>After. Error is caught at parse time.</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::operator_incompatible_types</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Types 'int' and 'string' are not compatible for the '+' operator.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">source:1:5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 | $in + "foo"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">    ─┬─</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ┬</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> ──┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">  │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   ╰── </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">  ╰── </span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">does not operate between 'int' and 'string'</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·      </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div>
</div><h4>Better type inference of <code>let</code> bindings</h4>
<p><code>let</code> bindings in the middle of a pipeline, or at the end of it, are now properly typed based on the pipeline input type.</p>
<p>You can observe this using <code>scope variables</code>:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">42</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> x</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">scope variables</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> where</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '$x'</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> select</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> type</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬──────┬──────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> #</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼──────┼──────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> $x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> int</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴──────┴──────╯</span></span></code></pre>
</div><p>or with LSP type hints:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">42</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> |</span><span style="color:#de73ff;--shiki-onedarkpro-font-style:italic;--shiki-light:#D670D6;--shiki-light-font-style:italic;--shiki-dark:#D670D6;--shiki-dark-font-style:italic"> let</span><span style="color:#d7dae0;--shiki-onedarkpro-font-style:italic;--shiki-light:#E5E5E5;--shiki-light-font-style:italic;--shiki-dark:#E5E5E5;--shiki-dark-font-style:italic"> var</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-onedarkpro-font-style:italic;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-light-font-style:italic;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666;--shiki-dark-font-style:italic">:</span><span style="color:#e6e6e6;background-color:#4f5666;--shiki-onedarkpro-font-style:italic;--shiki-light:#FFFFFF;--shiki-light-bg:#666666;--shiki-light-font-style:italic;--shiki-dark:#FFFFFF;--shiki-dark-bg:#666666;--shiki-dark-font-style:italic"> int</span></span></code></pre>
</div><p>This type information is of course passed through to the rest of the pipeline:</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> accepts-int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> []: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> -> </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"foo"</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> accepts-int</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::only_supports_this_input_type</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Input type not supported.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">source:3:9</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "foo" | let x | accepts-int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">        ─┬─</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">     ─────┬─────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·          </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">           ╰── </span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">only int input data is supported</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·          </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">input type: string</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div><h4>Command <code>def</code>initions</h4>
<p>Type checking and inference inside <code>def</code> blocks are now affected by the commands input/output signatures.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> accepts-int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> []: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> -> </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">int</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> foo</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> []: </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> -> </span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">any</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">    accepts-int</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::input_type_mismatch</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Command does not support string input.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">source:4:2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ def foo []: string -> any {</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │     accepts-int</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">    ─────┬─────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·          </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">command doesn't support string input</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span></code></pre>
</div><h4><code>if-else</code>, <code>match</code></h4>
<p>Conditionals (<code>if</code>, <code>match</code>) are now properly typed:</p>
<ul>
<li>
<p>output of the expression is a union of all possible output types (based on the branches)</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">if</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    42</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">    "foo"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> out</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # oneof&#x3C;int, string></span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">match</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    2</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "foo"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">    _</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> { {</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">a</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> out</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # oneof&#x3C;int, string, record&#x3C;a: int>></span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li>
<li>
<p>without a fallback (a final <code>else</code> branch for <code>if</code> chains, a wildcard pattern for <code>match</code> expressions) the output types of conditional expressions include <code>nothing</code></p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">if</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> ==</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    42</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> out</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # oneof&#x3C;int, nothing></span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">match</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    1</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">    2</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> =></span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "foo"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> out</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # oneof&#x3C;int, string, nothing></span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li>
<li>
<p>branch blocks get pipeline input type information</p>
<div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> if</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66"> true</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">    let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> input</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # list&#x3C;int></span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    $input</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> |</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> into string</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">} </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">else</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {</span></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">    # pass through</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span>
<span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> let</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> out</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # oneof&#x3C;list&#x3C;string>, list&#x3C;int>></span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li>
</ul>
<h3>Errors with more <code>details</code> and file relative spans  </h3>
<p>The error record you receive in <code>try {..} catch {..}</code> blocks no longer has a <code>json</code> field. A new field named <code>details</code> takes its place instead. It holds the same information as the <code>json</code> field but requires no deserialization stop like <code>from json</code>.</p>
<p>There is one small but significant difference: the error labels now have additional <code>location</code> field in addition to <code>span</code>.
<code>location</code> contains the name of the file the label points to, with <code>start</code> and <code>end</code> offsets that are relative to the file itself.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="example.nu">
    <span>example.nu</span>
  </div>
  <div class="language-nushell line-numbers-mode" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">use</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> std/</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">assert</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">export def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> wrong</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">  assert</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> equal</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> (</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">2</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">) </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">5</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
<div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">use</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> example.nu</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">wrong</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::error</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> These are not equal.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">/tmp/example.nu:4:16</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ export def wrong [] {</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   assert equal (2 + 2) 5</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">               ───┬───</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold"> ┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                   </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">│</span><span style="color:#d18f52;--shiki-onedarkpro-font-weight:bold;--shiki-light:#E5E510;--shiki-light-font-weight:bold;--shiki-dark:#E5E510;--shiki-dark-font-weight:bold">    ╰── right: 5</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                   </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── left: 4</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">try</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">wrong</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> catch</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> details</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭─────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">msg</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ These are not equal.                                                                               │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ ╭───┬──────────┬────────────────────┬────────────────────────────────────────────────────╮         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">labels</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">text</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │        </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">span</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        │                      </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">location</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">                      │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ ├───┼──────────┼────────────────────┼────────────────────────────────────────────────────┤         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ left: 4  │ ╭───────┬────────╮ │ ╭───────┬────────────────────────────────────────╮ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 170639 │ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">file</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ D:\Projects\nushell\scratch\example.nu │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 170646 │ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 56                                     │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ ╰───────┴────────╯ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 63                                     │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │                    │ ╰───────┴────────────────────────────────────────╯ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ right: 5 │ ╭───────┬────────╮ │ ╭───────┬────────────────────────────────────────╮ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 170647 │ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">file</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ D:\Projects\nushell\scratch\example.nu │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 170648 │ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 64                                     │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │ ╰───────┴────────╯ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 65                                     │ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ │   │          │                    │ ╰───────┴────────────────────────────────────────╯ │         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                 │ ╰───┴──────────┴────────────────────┴────────────────────────────────────────────────────╯         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">code</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">            │                                                                                                    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">url</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │                                                                                                    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">help</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">            │                                                                                                    │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">inner</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">           │ [list 0 items]                                                                                     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰─────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></span></code></pre>
</div><p>With these file-relative spans, making external tools for reporting nushell errors should be much easier.</p>
<h3>Removed deprecated <code>grid</code> record input support  </h3>
<p>In the last release, the <code>grid</code> command was modified to accept a column name argument rather than implicitly displaying the <code>name</code> column. The implicit assumption of <code>name</code> was deprecated, along with accepting a single record rather than a table.
These deprecated behaviors of the <code>grid</code> command are removed with this release.</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># This will no longer work</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{ </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> test</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> } </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> grid</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic"># …and should be updated to receive tables and include the column name as an argument</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[{ </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">:</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> test</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> }] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD"> grid</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> name</span></span></code></pre>
</div><h3>Standard library improvements  </h3>
<ul>
<li>
<p>Following general type system improvements, standard library commands now also have more accurate type annotations.</p>
</li>
<li>
<p><code>std/iter find-index</code> returns <code>null</code> instead of <code>-1</code> when failing to find a suitable element</p>
</li>
</ul>
<h4><code>std/iter scan</code> now has the same signature as <code>reduce</code></h4>
<div class="hint-container warning">
<p class="hint-container-title">Warning</p>
<p>This is a breaking change.</p>
</div>
<p>Previously <code>iter scan</code> always needed an initial value to start off of (equivalent to <code>reduce</code>'s <code>--fold</code>), and to compensate for it a <code>--noinit</code> flag to remove that initial value from the output.</p>
<p>Now its signature is identical to <code>reduce</code>:</p>
<div style="max-width: 100%; overflow: auto;">
<div style="display: grid; grid-template-columns: auto 1fr 1fr; column-gap: 1rem; justify-items: stretch; align-items: center">
<div>Before</div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> iter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> scan</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div></div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> iter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> scan</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">noinit</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div></div>
<div>After</div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> iter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> scan</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">fold</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div></div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 2</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66"> 3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">] </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B"> iter</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> scan</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> {|</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">x</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">| </span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">$x</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> +</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75"> $y</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div></div>
<div>
Output
</div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">6</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span></code></pre>
</div></div>
<div>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">[</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">6</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span></code></pre>
</div></div>
</div>
</div>
<h4>More streaming</h4>
<p>The following commands now stream:</p>
<ul>
<li><code>std/iter</code>:
<ul>
<li><code>intersperse</code></li>
<li><code>flat-map</code></li>
</ul>
</li>
<li><code>std-rfc/conversion</code>
<ul>
<li><code>into list</code></li>
</ul>
</li>
<li><code>std-rfc/tables</code>
<ul>
<li><code>select column-slices</code></li>
<li><code>reject column-slices</code></li>
</ul>
</li>
</ul>
<p>These commands don't really &quot;stream&quot;, in that they don't return a stream. Instead, they now avoid eagerly collecting input streams:</p>
<ul>
<li><code>std-rfc/conversions</code>
<ul>
<li><code>name-values</code>: strictly an internal change with possible performance benefits</li>
</ul>
</li>
<li><code>std-rfc/iter</code>
<ul>
<li><code>only</code>: will at most consume 2 items from the input</li>
</ul>
</li>
</ul>
<h3>Other breaking changes </h3>
<ul>
<li>We changed how &quot;hits&quot; are displayed by making them relative to the cwd in the hopes that it makes them more usable. It works this way for <code>idx find</code> and <code>idx search</code>. (<a href="https://github.com/nushell/nushell/pull/18477" target="_blank" rel="noopener noreferrer">#18477</a>)</li>
</ul>
<h2>Additions </h2>
<h3>KDL format support  </h3>
<p>This release adds support for KDL <code>v2.0.0</code> with <code>to kdl</code> and <code>from kdl</code> commands.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">hello 1 2 3</span></span>
<span class="line"></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">// Comment</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">world prop=string-value {</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">	child 1</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">	child 2</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">	child #inf</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">}</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from kdl</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────┬────────────────┬─────────────────────────┬──────────────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │      </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">args</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │          </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">props</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">          │                             </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">children</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">                             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───────┼────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ hello │ ╭───┬───╮      │ {record 0 fields}       │ [list 0 items]                                                   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │      │                         │                                                                  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │      │                         │                                                                  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │      │                         │                                                                  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │ ╰───┴───╯      │                         │                                                                  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ world │ [list 0 items] │ ╭──────┬──────────────╮ │ ╭───┬───────┬─────────────┬───────────────────┬────────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">prop</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ string-value │ │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │    </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">args</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">     │       </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">props</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │    </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">children</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │ ╰──────┴──────────────╯ │ ├───┼───────┼─────────────┼───────────────────┼────────────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ child │ ╭───┬───╮   │ {record 0 fields} │ [list 0 items] │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │   │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ ╰───┴───╯   │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ child │ ╭───┬───╮   │ {record 0 fields} │ [list 0 items] │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │   │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ ╰───┴───╯   │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ child │ ╭───┬─────╮ │ {record 0 fields} │ [list 0 items] │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ inf │ │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ │   │       │ ╰───┴─────╯ │                   │                │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │       │                │                         │ ╰───┴───────┴─────────────┴───────────────────┴────────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────┴────────────────┴─────────────────────────┴──────────────────────────────────────────────────────────────────╯</span></span></code></pre>
</div><h3>Introducing <code>polars map-batches</code>  </h3>
<p>Provides a new polars command <code>polars map-batches</code> that provides the ability to map a custom Nushell closure over one or more dataframe columns.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Return a constant series from a closure">
    <span>Return a constant series from a closure</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars into-df</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars map-batches</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --name</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> out</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">10</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 20</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 30</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">out</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  10 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  20 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  30 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Double the values of a column via a Nushell closure">
    <span>Double the values of a column via a Nushell closure</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars into-df</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars map-batches</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {|cols| </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$cols</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$in</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> *</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 4 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 6 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Sum two columns element-wise and rename result">
    <span>Sum two columns element-wise and rename result</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars into-df</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars map-batches</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --name</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a_plus_b</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { |cols|</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">    let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$cols</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 0</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">    let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> b</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$cols</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> polars get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span></span>
<span class="line"><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">    $a</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> zip</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $b</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { |pair| </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$pair</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> +</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $pair</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬──────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a_plus_b</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼──────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │        5 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │        7 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │        9 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴──────────╯</span></span></code></pre>
</div>
</div><h3>Add <code>commandline complete</code> to invoke nushell completions  </h3>
<p>Add <code>commandline complete</code> command. This can be used to obtain the suggestions that nushell itself would normally suggest. Some examples:</p>
<ul>
<li><code>commandline complete</code> — return completions based on the current commandline contents (i.e. what would be suggested when pressing <code>Tab</code>)</li>
<li><code>'./a' | commandline complete --type directory</code> — return directory paths relative to the current directory that start with <code>a</code></li>
<li><code>'%ls -' | commandline complete --detailed</code> — return all flags the builtin <code>ls</code> command accepts, including their descriptions.</li>
</ul>
<p>These completions can be used in custom command completions, for example to wrap a builtin command with additional options, or to obtain a list of suggested paths for further filtering or processing.</p>
<h3>Add <code>--pretty</code> flag and align table columns in <code>to nuon</code>  </h3>
<p><code>to nuon</code> now aligns table columns when using <code>--indent</code>, <code>--tabs</code>, or the new <code>--pretty</code> (<code>-p</code>) flag, making output easier to read. <code>--pretty</code> is shorthand for <code>--indent 2</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">name</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">age</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Alice</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">30</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">], [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Bob</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">25</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to nuon</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --pretty</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  [name,  age];</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  [Alice, 30],</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  [Bob,   25]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span></code></pre>
</div><h3>Added <code>run</code> command for using scripts in pipelines  </h3>
<p>There's a new command named <code>run</code> that allows scripts to participate in a nushell pipeline with input and output.</p>
<p>It keeps execution isolated so script artifacts do not leak into the parent scope. Script resolution remains aligned with existing behavior (cwd / <code>NU_LIB_DIRS</code> / explicit paths); <code>PATH</code>-based lookup is not included at this time.</p>
<h4>Script Forms Supported</h4>
<h5>Bare scripts (scripts without def main)</h5>
<p>The script body is evaluated directly as a pipeline transform (using implicit or explicit <code>$in</code> as usual).</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="run-script1.nu">
    <span>run-script1.nu</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">str</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> uppercase</span></span></code></pre>
</div>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"Hello Nushell!"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> run</span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD"> run-script1.nu</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">HELLO NUSHELL!</span></span></code></pre>
</div><h5>Scripts with <code>def main</code> entry point</h5>
<p>If a top-level <code>def main</code> is defined, run invokes that entrypoint.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="run-script2.nu">
    <span>run-script2.nu</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">def</span><span style="--shiki-light:#DCDCAA;--shiki-dark:#DCDCAA;--shiki-onedarkpro:#61AFEF"> main</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF"> [] {</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">  str length</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"Hello Nushell!"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> run</span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD"> run-script2.nu</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">14</span></span></code></pre>
</div><h5>Scripts with full pipelines</h5>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"Hello Nushell!"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> run</span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD"> run-script1.nu</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> str camel-case</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">helloNushell</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"Hello Nushell!"</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> run</span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD"> run-script2.nu</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $in</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> +</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">19</span></span></code></pre>
</div><h3>Added POSIX-style <code>--</code> option parsing for Nushell commands  </h3>
<p>Nushell now supports the POSIX <code>--</code> end-of-options delimiter for built-in commands, custom commands, and <code>def --wrapped</code> commands.</p>
<p>When <code>--</code> appears in a command invocation, it stops all flag parsing. Any arguments after <code>--</code> are treated as positional operands, even if they start with <code>-</code> or <code>--</code>. The <code>--</code> token itself is consumed and does not appear in the command's arguments.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Pass dash-prefixed values as positional args, not flags">
    <span>Pass dash-prefixed values as positional args, not flags</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> greet</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [--upper, name]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">    if</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $upper</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$name</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> str uppercase</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> else</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$name</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">greet</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -- </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">-Alice</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  # -Alice is now a positional, not an unknown flag</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">-Alice</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Useful for passing flag-like values to rest parameters">
    <span>Useful for passing flag-like values to rest parameters</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> process</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [...args]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$args</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">process</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> -- </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">--verbose</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> -x</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> foo</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  # -- consumed; args = ["--verbose", "-x", "foo"]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ --verbose │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ -x        │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ foo       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Works with def --wrapped too">
    <span>Works with def --wrapped too</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --wrapped</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> my-git</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [...args]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">print</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> ...</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$args</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">my-git</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> commit</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> --</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> -m</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> "my message"</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  # -- NOT consumed; -m passed as operand</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">commit</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">--</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">-m</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">my message</span></span></code></pre>
</div>
</div><p>For <code>extern</code>-declared known external commands, <code>--</code> continues to be passed through to the external binary unchanged (as those programs manage their own argument parsing).</p>
<h3>Added stream and error controls to <code>ignore</code>  </h3>
<p>Update the <code>ignore</code> command with flags to control whether stderr, stdout, or both get consumed and if errors are show which update <code>$env.LAST_EXIT_CODE</code>. This should work on internal and external commands.</p>
<p>Existing behavior is the default when no new flags are provided to avoid breaking changes.</p>
<ul>
<li>Added <code>--stderr</code> (<code>-e</code>) to consume stderr while allowing stdout to pass through.</li>
<li>Added <code>--stdout</code> (<code>-o</code>) to consume stdout while allowing stderr output through.</li>
<li>Added <code>--show-errors</code> (<code>-x</code>) to show external/internal errors and set <code>$env.LAST_EXIT_CODE</code> (external exit code for external failures, <code>1</code> for internal failures).</li>
</ul>
<h3>Added <code>--context</code> support to <code>idx search</code>  </h3>
<p>Add context to your <code>idx search</code> queries by using <code>--context/-c</code> and a nushell range. The range has to be in the form of <code>negative_number..positive_number</code> where <code>negative_number</code> is the before lines to show and the <code>positive_number</code> is the after lines to show in the <code>with_context</code> record key.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">idx search</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> foo</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --context</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> -3</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───────────────┬─────────────────────────────────────────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">relative_path</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ crates\nu-utils\src\default_files\doc_config.nu                                             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line_number</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 249                                                                                         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        │ 51                                                                                          │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">byte_offset</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 10991                                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">          │ # Example: If a directory contains only "forage", "food", and "forest",                     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╭───┬───────┬───────╮                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">matches</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ├───┼───────┼───────┤                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 11042 │ 11045 │                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╰───┴───────┴───────╯                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╭───┬─────────────────────────────────────────────────────────────────────────────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">with_context</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # Default: true                                                                     │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ $env.config.completions.partial = true                                              │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │                                                                                     │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # Example: If a directory contains only "forage", "food", and "forest",             │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # typing "ls " and pressing Tab will partially complete the first matching letters. │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # If the directory also includes "faster", only "f" would be partially completed.   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │                                                                                     │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">7</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # completions.use_ls_colors (bool): Apply LS_COLORS to file/path completions.       │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">8</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # true: Use LS_COLORS for styling file completions.                                 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╰───┴─────────────────────────────────────────────────────────────────────────────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───────────────┴─────────────────────────────────────────────────────────────────────────────────────────────╯</span></span></code></pre>
</div><h3>Allowed <code>idx search --context</code> to accept counts or ranges  </h3>
<p>This change allows <code>idx search --context</code> to be supplied as either an <code>int</code> or as a <code>range</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">idx search</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> foo</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --context</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───────────────┬─────────────────────────────────────────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">relative_path</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ crates\nu-utils\src\default_files\doc_config.nu                                             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line_number</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 249                                                                                         │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">column</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        │ 51                                                                                          │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">byte_offset</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ 10991                                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">line</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">          │ # Example: If a directory contains only "forage", "food", and "forest",                     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╭───┬───────┬───────╮                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">matches</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">start</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">end</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ├───┼───────┼───────┤                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 11042 │ 11045 │                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╰───┴───────┴───────╯                                                                       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╭───┬─────────────────────────────────────────────────────────────────────────────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">with_context</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ $env.config.completions.partial = true                                              │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │                                                                                     │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # Example: If a directory contains only "forage", "food", and "forest",             │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # typing "ls " and pressing Tab will partially complete the first matching letters. │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ # If the directory also includes "faster", only "f" would be partially completed.   │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│               │ ╰───┴─────────────────────────────────────────────────────────────────────────────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───────────────┴─────────────────────────────────────────────────────────────────────────────────────────────╯</span></span></code></pre>
</div><h3>Introducing Polars bitwise commands  </h3>
<p>Introducing polars bitwise commands:</p>
<ul>
<li><code>polars math bitwise-and</code> - Perform an aggregation of bitwise ANDs over a column expression.</li>
<li><code>polars math bitwise-count-ones</code> - Compute the number of set bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-count-zeros</code> - Compute the number of unset bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-leading-ones</code> - Compute the number of leading set bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-leading-zeros</code> - Compute the number of leading unset bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-or</code> - Perform an aggregation of bitwise ORs over a column expression.</li>
<li><code>polars math bitwise-trailing-ones</code> - Compute the number of trailing set bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-trailing-zeros</code> - Compute the number of trailing unset bits for each element in an integer column expression.</li>
<li><code>polars math bitwise-xor</code> - Perform an aggregation of bitwise XORs over a column expression.</li>
</ul>
<h3>Add non-UTF-8 text support for <code>url encode</code>/<code>url decode</code>  </h3>
<ul>
<li>
<p><code>url encode</code> can now encode binary input too, adding support for encoding non-UTF-8 texts</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'£ rates'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> encode</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> iso-8859-1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> url encode</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">%A3%20rates</span></span></code></pre>
</div></li>
<li>
<p><code>url decode</code> can now decode inputs that do not evaluate to UTF-8 texts by returning a binary value (only with the <code>--binary</code> switch)</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'%A3%20rates'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> url decode</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --binary</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> decode</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> iso-8859-1</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">£ rates</span></span></code></pre>
</div></li>
</ul>
<h3>Support reedline menu input/output modes and list description position  </h3>
<p>Reedline menus can now be configured with <code>input_mode</code> (<code>diff</code>, <code>cursor_prefix</code>, <code>full_buffer</code>) and <code>output_mode</code> (<code>suggested_span</code>, <code>full_buffer</code>, <code>extend_to_end</code>) to control what text the menu reads from the buffer and how an accepted suggestion is written back.
List menus additionally accept <code>description_position</code> (<code>before</code> / <code>after</code>). The existing <code>only_buffer_difference</code> flag still works and is treated as a shorthand (<code>true = diff</code>, <code>false = cursor_prefix</code>).</p>
<h3>Added <code>random pass</code> for generating passwords  </h3>
<p>New command <code>random pass</code> generates random passwords.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">10</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">random pass</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────┬──────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ WR9+*T4em#&#x26;2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ >~z$0I-E&#x3C;3&#x26;x │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ "%uF9qafB%+{ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ VMI5h+T4,XcX │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ B,diE+Z`#O6g │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 9fKehf4|F,xr │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">6</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 6d?nH1|HV^ck │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">7</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ iH>5l?`P7q2x │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">8</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ w>w2I(v67=9E │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">9</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ QYqc}g8ux#!U │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">10</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ #Jla4UAoJ+&#x3C;G │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────┴──────────────╯</span></span></code></pre>
</div><p><code>random pass</code> supports these flags.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">Flags</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">:</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -h</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--help</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Display the help message for this command</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -c</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--chars</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> &#x3C;</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">int</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">>: Length of the generated password (default 12).</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -u</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--no-uppercase</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Exclude uppercase letters A-Z.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -l</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--no-lowercase</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Exclude lowercase letters a-z.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -n</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--no-numbers</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Exclude numbers 0-9.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  -s</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">, </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">--no-symbols</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Exclude symbols like !@#$%.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --include-ambiguous</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Include ambiguous characters O, 0, l, 1.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --include-similar</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Include similar characters i, l, 1.</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">  --require-each-type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">: Guarantee at least one char from each enabled character type.</span></span></code></pre>
</div><h3>Allow <code>is-terminal</code> to detect redirection  </h3>
<p>The <code>is-terminal</code> command can detect redirection now. It now defaults to <code>--stdout</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">is-terminal</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">true</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">is-terminal</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $in</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">is-terminal</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> o></span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> file</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">open</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> file</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">(</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">is-terminal</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$x</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span></code></pre>
</div><h3>Added <code>--right</code> to <code>split row</code> and <code>split column</code>  </h3>
<p>Both <code>split row</code> and <code>split column</code> now support <code>--right</code>, which modifies where splits are skipped, e.g.:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'some-package-1.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> split row</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> '-'</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --number</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ some        │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ package-1.0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'some-package-1.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> split row</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> '-'</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --number</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --right</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬──────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ some-package │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.0          │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴──────────────╯</span></span></code></pre>
</div><h3>Added some commands for set operations and combinations  </h3>
<p>Added <code>union</code>, <code>intersect</code>, <code>difference</code>, <code>combinations</code>, and <code>permutations</code> as built-in filter commands. These provide immutable, functional list operations.</p>
<p><code>union</code>: Returns a deduplicated list of unique elements present in either the input list or the given list.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> union</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 4 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 5 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 6 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">} {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> union</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">} {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span></code></pre>
</div><p><code>intersect</code>: Returns a deduplicated list of unique elements present in both the input list and the given list.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> intersect</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 4 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> intersect</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">4</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">empty list</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────────╯</span></span></code></pre>
</div><p><code>difference</code>: Returns a deduplicated list of unique elements present in the input list but not in the given list.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> difference</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 4</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 6</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">} {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">} {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> difference</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">} {</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">:</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">4</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span></code></pre>
</div><p><code>combinations</code>: Generates all combinations of a given size k from the input list, streamed lazily via <code>ListStream</code>. If k &gt; n, returns an empty list.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> combinations</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> combinations</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">empty list</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────────╯</span></span></code></pre>
</div><p><code>permutations</code>: Generates all permutations of the input list using Heap's algorithm, streamed lazily via <code>ListStream</code>.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> permutations</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">5</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 3 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> permutations</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬───╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │ ╰───┴───╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────────╯</span></span></code></pre>
</div><h3>Added semantic version parsing and commands  </h3>
<p>Nushell now understands and allows you to work with Semantic Versioning. All functionality works through idiomatic Nushell patterns:</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Converting to SemVer">
    <span>Converting to SemVer</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">major</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">minor</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">patch</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">major</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">minor</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">patch</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> describe</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">semver</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Decomposing SemVer to record">
    <span>Decomposing SemVer to record</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3-alpha.1+build.2'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into record</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───────────────────┬───────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">major</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ 1             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">minor</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ 2             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">patch</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ 3             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pre</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">               │ alpha.1       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">build</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">             │ build.2       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ ╭───┬───────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pre_identifiers</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ alpha │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │     1 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ ╰───┴───────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ ╭───┬───────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">build_identifiers</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ build │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │     2 │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│                   │ ╰───┴───────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───────────────────┴───────────────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Building SemVer from record">
    <span>Building SemVer from record</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">major</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">minor</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">patch</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pre</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"alpha.1"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3-alpha.1</span></span></code></pre>
</div>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> major</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">2.0.0</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> minor</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.3.0</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> patch</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.4</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> alpha</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3-alpha.1</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3-alpha.1'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> alpha</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3-alpha.2</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3-alpha'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> release</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.2.3</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> major</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">2.0.0</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> minor</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">1.3.0</span></span></code></pre>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Tab completions are available">
    <span>Tab completions are available</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">| </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> semver bump</span></span>
<span class="line"><span style="color:#1e1e1e;background-color:#8cc265;--shiki-light:#1E1E1E;--shiki-light-bg:#0DBC79;--shiki-dark:#1E1E1E;--shiki-dark-bg:#0DBC79">alpha</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               beta</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">                major</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               minor</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">patch</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               rc</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">                  release</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Completions also work with variables">
    <span>Completions also work with variables</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> v</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">| </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$v</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span></span>
<span class="line"><span style="color:#1e1e1e;background-color:#8cc265;--shiki-light:#1E1E1E;--shiki-light-bg:#0DBC79;--shiki-dark:#1E1E1E;--shiki-dark-bg:#0DBC79">build</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               major</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               minor</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">               patch</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pre</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Sorting SemVer values">
    <span>Sorting SemVer values</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'2.0.0'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.0.0'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into semver</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> sort</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.0.0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.2.3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2.0.0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'2.0.0'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.0.0'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into semver</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> sort</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --reverse</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 2.0.0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.2.3 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.0.0 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Checking Valid SemVer">
    <span>Checking Valid SemVer</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">try</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> is-not-empty</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">true</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">try</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'not-valid'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> is-not-empty</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Matching SemVer against requirements">
    <span>Matching SemVer against requirements</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $in</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> in</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> (</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'>=1.0.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">true</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.0.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $in</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> in</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> (</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'>=2.0.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.3.0-alpha'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $in</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510"> in</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> (</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'>=1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">false</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Converting SemVer range">
    <span>Converting SemVer range</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'>=1.0.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">>=1.0.0</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'^1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">^1.2.3</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'~1.2'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">~1.2</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Describe">
    <span>Describe</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> v</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$v</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> describe</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">semver</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$v</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> describe</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -d</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───────────────┬───────────────────────────────────────────────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">          │ custom                                                                │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">detailed_type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ semver                                                                │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">subtype</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │ semver                                                                │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">rust_type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">     │ &#x26;alloc::boxed::Box&#x3C;dyn nu_protocol::value::custom_value::CustomValue> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">value</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">         │ 1.2.3                                                                 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───────────────┴───────────────────────────────────────────────────────────────────────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Table coloring">
    <span>Table coloring</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">string</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">semver</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">semver-range</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">];</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, (</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1.2.3'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">), (</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'>=1.0.0'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> into semver-range</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)]</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────────┬────────┬──────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">string</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">semver</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">semver-range</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────────┼────────┼──────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1.2.3  │ </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">1.2.3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">>=1.0.0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────────┴────────┴──────────────╯</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Color configuration">
    <span>Color configuration</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.color_config.semver</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "cyan_bold"</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E5C07B">$env</span><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">.config.color_config.semver-range</span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD"> =</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> "cyan_bold"</span></span></code></pre>
</div>
</div><h3><code>from xlsx</code>/<code>from ods</code> gets a <code>--prefer-integers</code> flag  </h3>
<p><code>xlsx</code> and <code>ods</code> files store numbers as floats by default, even if they are not display with decimal points.</p>
<p><code>from xlsx</code> and <code>from ods</code> now has a <code>--prefer-integers</code> (<code>-i</code>) flag that imports whole-number floats as integers.</p>
<p>This has no effect on non-whole floats.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">open</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --raw</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> tests/fixtures/formats/sample_data.xlsx</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from xlsx</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> SalesOrders</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────────┬─────────┬─────────┬────────┬───────┬───────────┬────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">OrderDate</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Region</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Rep</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Units</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Unit Cost</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Total</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────────────┼─────────┼─────────┼────────┼───────┼───────────┼────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ East    │ Jones   │ Pencil │ 95.00 │      1.99 │ 189.05 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Kivell  │ Binder │ 50.00 │     19.99 │ 999.50 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Jardine │ Pencil │ 36.00 │      4.99 │ 179.64 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Gill    │ Pen    │ 27.00 │     19.99 │ 539.73 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ West    │ Sorvino │ Pencil │ 56.00 │      2.99 │ 167.44 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────────┴─────────┴─────────┴────────┴───────┴───────────┴────────╯</span></span></code></pre>
</div><div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">open</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --raw</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> tests/fixtures/formats/sample_data.xlsx</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> from xlsx</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --prefer-integers</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> get</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> SalesOrders</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 5</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────────┬─────────┬─────────┬────────┬───────┬───────────┬────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">OrderDate</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Region</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Rep</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Units</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Unit Cost</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">Total</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────────────┼─────────┼─────────┼────────┼───────┼───────────┼────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ East    │ Jones   │ Pencil │    95 │      1.99 │ 189.05 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Kivell  │ Binder │    50 │     19.99 │ 999.50 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Jardine │ Pencil │    36 │      4.99 │ 179.64 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ Central │ Gill    │ Pen    │    27 │     19.99 │ 539.73 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">4</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">8 years ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ West    │ Sorvino │ Pencil │    56 │      2.99 │ 167.44 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────────┴─────────┴─────────┴────────┴───────┴───────────┴────────╯</span></span></code></pre>
</div><h3>Other additions </h3>
<ul>
<li>Added <code>math cbrt</code> (cube root) function. (<a href="https://github.com/nushell/nushell/pull/18473" target="_blank" rel="noopener noreferrer">#18473</a>)</li>
<li><code>append</code> can now take multiple values to append as rest parameters (<a href="https://github.com/nushell/nushell/pull/18218" target="_blank" rel="noopener noreferrer">#18218</a>)</li>
<li>Improve <code>LS_COLORS</code> support to <code>commandline complete --detailed</code>. (<a href="https://github.com/nushell/nushell/pull/18325" target="_blank" rel="noopener noreferrer">#18325</a>)</li>
<li>The <code>idx init</code> command uses content indexing by default. (<a href="https://github.com/nushell/nushell/pull/18332" target="_blank" rel="noopener noreferrer">#18332</a>)</li>
<li>Improved <code>hash md5</code> and <code>hash sha256</code> help examples to show hashing binary data. (<a href="https://github.com/nushell/nushell/pull/18338" target="_blank" rel="noopener noreferrer">#18338</a>)</li>
<li>Added completions to <code>ansi gradient</code>'s <code>--fgnamed</code> and <code>--bgnamed</code> flags. (<a href="https://github.com/nushell/nushell/pull/18342" target="_blank" rel="noopener noreferrer">#18342</a>)</li>
<li><code>nu-highlight</code> now clears <code>content_type</code> metadata (<a href="https://github.com/nushell/nushell/pull/18266" target="_blank" rel="noopener noreferrer">#18266</a>)</li>
<li>Keybinding <code>edit</code> events now support reedline's verb-based edit commands (<code>move</code>, <code>extend</code>, <code>cut</code>, <code>copy</code>, <code>change</code>, <code>erase</code>) combined with a <code>motion</code> and its parameters, enabling vi-style operator/motion keybindings to be expressed directly in config. The new commands and their fields are discoverable via <code>keybindings list</code>. (<a href="https://github.com/nushell/nushell/pull/18396" target="_blank" rel="noopener noreferrer">#18396</a>)</li>
<li>The <code>http</code> commands now use the response body as error message when getting an error response. (<a href="https://github.com/nushell/nushell/pull/18387" target="_blank" rel="noopener noreferrer">#18387</a>)</li>
<li>If the <code>NU_EXPERIMENTAL_OPTIONS</code> environment variable is set, it will be used when running nushell with the <code>--login</code> or <code>--execute</code> flags since they also load config. (<a href="https://github.com/nushell/nushell/pull/18392" target="_blank" rel="noopener noreferrer">#18392</a>)</li>
<li>Refactor commands that use sqlite pushdown so that it's easier to add other pushdown filters. (<a href="https://github.com/nushell/nushell/pull/18398" target="_blank" rel="noopener noreferrer">#18398</a>)</li>
<li>Added common navigation shortcuts to <code>explore config</code> command: <code>hl</code> to collapse/expand, and <code>jk</code>/<code>ctrl+p/n</code> to go up and down. (<a href="https://github.com/nushell/nushell/pull/18440" target="_blank" rel="noopener noreferrer">#18440</a>)</li>
<li>For those debugging startup performance, we added a new <code>--log-level</code> called <code>perf</code> that shows performance information. (<a href="https://github.com/nushell/nushell/pull/18468" target="_blank" rel="noopener noreferrer">#18468</a>)</li>
</ul>
<h2>Deprecations </h2>
<h3>Deprecate <code>str upcase</code>/<code>str downcase</code> and add <code>str uppercase</code>/<code>str lowercase</code>  </h3>
<p>Added <code>str uppercase</code> command to convert text to uppercase (replaces <code>str upcase</code>)
Added <code>str lowercase</code> command to convert text to lowercase (replaces <code>str downcase</code>)
Deprecated <code>str upcase</code>, using it shows a warning recommending <code>str uppercase</code>.
Deprecated <code>str downcase</code>, using it shows a warning recommending <code>str lowercase</code>.</p>
<h3>Other deprecations </h3>
<ul>
<li>Removed the deprecated <code>use std/clip</code> <code>copy</code> and <code>paste</code> commands; they are now called <code>copy52</code> and <code>paste52</code> for the ones that use the terminal <code>OSC 52</code>, or you can use <code>clip copy</code> and <code>clip paste</code> from the experimental option <code>native-clip</code> that access the system clipboard directly. (<a href="https://github.com/nushell/nushell/pull/18403" target="_blank" rel="noopener noreferrer">#18403</a>)</li>
</ul>
<h2>Other changes </h2>
<h3>More idiomatic YAML output with smarter string quoting  </h3>
<div class="hint-container info">
<p class="hint-container-title">Info</p>
<p>The next release will have a complete rework of the YAML implementation.
So this is only relevant for this release.</p>
</div>
<p>The previous emitter always quoted string values, which produced valid YAML but was more conservative than necessary and less aligned with YAML 1.2 plain-scalar rules.</p>
<p>This change makes output:</p>
<ul>
<li>more readable</li>
<li>closer to idiomatic YAML</li>
<li>more spec-aligned for plain scalars</li>
<li>still safe for roundtripping by quoting values that would otherwise be reinterpreted as non-strings</li>
</ul>
<h4>Before:</h4>
<div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'off'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">path</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'/dev/stdout'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">listen</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'0.0.0.0:8444,0.0.0.0:8445 ssl'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'kong'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">kind</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'Deployment'</span></span></code></pre>
</div><h4>After:</h4>
<div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'off'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">path</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">/dev/stdout</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">listen</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">0.0.0.0:8444,0.0.0.0:8445 ssl</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">kong</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">kind</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">Deployment</span></span></code></pre>
</div><p>Multiline strings now emit as:</p>
<div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">-</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  Hello</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  world</span></span></code></pre>
</div><h3>Width-priority columns  </h3>
<p>Added support for column width-priority hints in table rendering. Values can now carry <code>--table-width-priority-columns</code> metadata so the <code>table</code> command gives selected columns more space when fitting output to the terminal width.</p>
<p>Providing the metadata will cause the <code>table</code> command to render the output differently</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ps</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -l</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> select</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> name</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> command</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> pid</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> table</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬──────────────────────────────────┬───────────────────────────────────────────────────────────────────────────┬─────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │               </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">               │                                  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">                                  │ ... │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼──────────────────────────────────┼───────────────────────────────────────────────────────────────────────────┼─────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ GameInputRedistService.exe       │ C:\Program Files\Microsoft GameInput\x64\GameInputRedistService.exe       │ ... │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                                  │ /session=\\.\pipe\GameInputServiceSession-002fb4627cd24645-00000001       │     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ nvcontainer.exe                  │ C:\Program Files\NVIDIA Corporation\NvContainer\nvcontainer.exe -f        │ ... │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                                  │ C:\ProgramData\NVIDIA Corporation\NVIDIA                                  │     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                                  │ App\NvContainer\NvContainerUser%d.log -d C:\Program Files\NVIDIA          │     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                                  │ Corporation\NvContainer\plugins\User -r -l 3 -p 30000 -c                  │     │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴──────────────────────────────────┴───────────────────────────────────────────────────────────────────────────┴─────╯</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ps</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -l</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> select</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> name</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> command</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> pid</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> first</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 2</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> metadata set</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -w</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pid</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">]</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> table</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────────────────────────────┬───────────────────────────────────────────────────────────────────────────────┬───────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │            </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">name</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">            │                                    </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">                                    │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pid</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────────────────────────────┼───────────────────────────────────────────────────────────────────────────────┼───────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ GameInputRedistService.exe │ C:\Program Files\Microsoft GameInput\x64\GameInputRedistService.exe           │ 12744 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                            │ /session=\\.\pipe\GameInputServiceSession-002fb4627cd24645-00000001           │       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ nvcontainer.exe            │ C:\Program Files\NVIDIA Corporation\NvContainer\nvcontainer.exe -f            │ 12792 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                            │ C:\ProgramData\NVIDIA Corporation\NVIDIA                                      │       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                            │ App\NvContainer\NvContainerUser%d.log -d C:\Program Files\NVIDIA              │       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│   │                            │ Corporation\NvContainer\plugins\User -r -l 3 -p 30000 -c                      │       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────────────────────────────┴───────────────────────────────────────────────────────────────────────────────┴───────╯</span></span></code></pre>
</div><h3>Polars upgrade 0.54  </h3>
<ul>
<li><code>polar implode</code> now supports the flag <code>--maintain-order</code></li>
<li><code>polars is-in</code> now supports the flag <code>--maintain-order</code></li>
<li><code>polars pivot</code> now supports the flag <code>--always-combine-names</code></li>
<li><code>polars replace</code> requires a <code>--default &lt;value&gt;</code> parameter when used with <code>--strict</code> and <code>--return-dtype</code> if the dtype has changed from the original dtype</li>
</ul>
<h3>New experimental globbing engine  </h3>
<p>This release introduces a new experimental feature named <code>dc-glob</code> (named for Devyn Cairn's glob).
Currently, Nushell has two separate globbing engines with varying features and platform support.</p>
<p>This engine is intended to replace the existing globbing engines and standardize on something that works well on all platforms.
In addition, this globbing engine seems to perform faster than the existing engines.</p>
<h3>Additional changes </h3>
<ul>
<li>&quot;Command not found&quot; error messages will now suggest the full command from a category if you type just its ending; for example, <code>sqrt</code> will suggest <code>math sqrt</code>. (<a href="https://github.com/nushell/nushell/pull/18498" target="_blank" rel="noopener noreferrer">#18498</a>)</li>
<li>Fixed <code>plugin list --help</code> to show the correct output type and example for the <code>commands</code> column, which contains each plugin command's name and description. (<a href="https://github.com/nushell/nushell/pull/18357" target="_blank" rel="noopener noreferrer">#18357</a>)</li>
<li>Added some <code>@attr</code>s to the <code>toolkit.nu</code> commands so that they show up in category, search terms, and examples. I also homogenized help casing and punctuation. (<a href="https://github.com/nushell/nushell/pull/18350" target="_blank" rel="noopener noreferrer">#18350</a>)</li>
<li>Added support for feature gating LSP functionality, specifically enable it via <code>--features lsp</code>. (<a href="https://github.com/nushell/nushell/pull/18148" target="_blank" rel="noopener noreferrer">#18148</a>)</li>
<li><code>http post</code>/<code>put</code>/<code>patch</code>/<code>delete</code> now respects <code>--content-type</code> for JSON-variant MIME types like <code>application/json-patch+json</code>. (<a href="https://github.com/nushell/nushell/pull/18496" target="_blank" rel="noopener noreferrer">#18496</a>)</li>
</ul>
<h2>Bug fixes </h2>
<h3><code>idx</code> dependency update and command reliability improvements  </h3>
<p>Update the <code>idx</code> fff-search dependency and fix bugs.</p>
<ul>
<li><code>idx init . --wait</code> now properly blocks</li>
<li><code>idx init</code> now has a <code>--follow-links</code> switch</li>
<li><code>idx status</code> reports accurate counts after indexing</li>
<li><code>idx import</code> fully restores snapshot for queries — The <code>idx import</code> command now properly restores snapshots to enable all query operations. Imported snapshots remain queryable even if the original project files have been deleted or moved.</li>
<li><code>idx files</code> works on imported snapshots</li>
<li><code>idx files</code> has a <code>query</code> parameter now for easy searching (renamed from <code>path</code> for consistency)</li>
<li><code>idx dirs</code> works on imported snapshots</li>
<li><code>idx dirs</code> has a <code>query</code> parameter now for easy searching</li>
<li><code>idx find</code> (fuzzy search) works on imported snapshots</li>
<li><code>idx search</code> (content search) works on imported snapshots</li>
<li>changed output to nushell values for commands that return tables</li>
<li>updated some help strings to be more helpful</li>
</ul>
<p>Files are ignored during indexing due to the use of the <code>ignore</code> crate. These are the rules for ignore <a href="https://docs.rs/ignore/latest/ignore/struct.WalkBuilder.html#ignore-rules" target="_blank" rel="noopener noreferrer">https://docs.rs/ignore/latest/ignore/struct.WalkBuilder.html#ignore-rules</a>. There's no way to override this in the current version.</p>
<h3>Subcommand completions are now wrapped in quotes for <code>which</code>  </h3>
<p>Tab completions for <code>which</code> and <code>attr complete</code>/<code>@complete</code> commands will now properly quote command names containing spaces.</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">which</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> 'path par</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">which</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> path</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> parse</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────────┬──────┬──────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">path</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────────┼──────┼──────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ path    │      │ built-in │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ parse   │      │ built-in │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────────┴──────┴──────────╯</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">which</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> 'path par</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">which</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "path parse"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────────────┬──────┬──────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">command</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">path</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────────────┼──────┼──────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ path parse │      │ built-in │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────────────┴──────┴──────────╯</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Fix nested update closure for table columns  </h3>
<p>This fixes a bug where <code>update</code> with a nested column path and closure (for example <code>rss_item.pubDate</code>) could evaluate the closure against a projected list and write the same result back to every row.</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">  rss_item</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pubDate</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">];</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1773429600</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1774325700</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1775448000</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  ]</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> rss_item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pubDate</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into datetime</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -f</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "%s"</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭──────────┬──────────────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ╭───┬──────────────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">rss_item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │       </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pubDate</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ├───┼──────────────────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬──────────────╮ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ ╰───┴──────────────╯ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬──────────────╮ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ ╰───┴──────────────╯ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ ╭───┬──────────────╮ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │   │ ╰───┴──────────────╯ │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ╰───┴──────────────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰──────────┴──────────────────────────────╯</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span></span>
<span class="line"><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">  rss_item</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pubDate</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">];</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1773429600</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1774325700</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">],</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">    [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1775448000</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]</span></span>
<span class="line"><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">  ]</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> rss_item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">pubDate</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into datetime</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -f</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> "%s"</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭──────────┬──────────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ╭───┬──────────────╮ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">rss_item</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">pubDate</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ├───┼──────────────┤ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">3 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">2 months ago</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│          │ ╰───┴──────────────╯ │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰──────────┴──────────────────────╯</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{ </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">w</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">x</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [ { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"1"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> } { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> } ] } }</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> w</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into float</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to yaml</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">w:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  x:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    - 'y':</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        - 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        - 2.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    - 'y':</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        - 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        - 2.0</span></span>
<span class="line"></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{ </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">w</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">x</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: [ { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"1"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> } { </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"2"</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> } ] } }</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> w</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">.</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">y</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into float</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to yaml</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">w:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  x:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    - 'y': 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">    - 'y': 2.0</span></span>
<span class="line"></span></code></pre>
</div>
</div></div>
</div>
</div>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[ </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> ]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into float</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to yaml</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">-</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  - a:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      - 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      - 2.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  - a:</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      - 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">      - 2.0</span></span>
<span class="line"></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">[ </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">] [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">2</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> ]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> update</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> a</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">into float</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to yaml</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">-</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  - a: 1.0</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  - a: 2.0</span></span>
<span class="line"></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Structured <code>nu-mcp</code> evaluation output  </h3>
<p>The MCP <code>evaluate</code> tool keeps evaluated Nushell values structured in <code>output</code>, so output data is fully unescaped instead of a wrapped string. Successful and error responses are also mirrored as MCP <code>structuredContent</code> JSON for clients that support structured tool output.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-json" data-highlighter="shiki" data-ext="json" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-json"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "jsonrpc"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"2.0"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "id"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "result"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    "content"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: [</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "type"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"text"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "text"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"{cwd:/Users/fdncred/src/nushell,history_index:0,timestamp:2026-05-21T15:10:18.619935+00:00,output:</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\"\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">[</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  {</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">name</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">assets</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">type</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">dir</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">size</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: 160,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">modified</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">2024-09-14T07:06:47.316979108-05:00</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  },</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  {</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">name</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">ast-grep</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">type</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">dir</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">size</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: 160,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">modified</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">2026-01-07T06:22:12.488582817-06:00</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  },</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  {</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">name</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">benches</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">type</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">dir</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">size</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: 128,</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">    \\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">modified</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">: </span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">2026-05-21T08:31:29.486599444-05:00</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\\\\\"\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  }</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\n</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">]</span><span style="--shiki-light:#D7BA7D;--shiki-dark:#D7BA7D;--shiki-onedarkpro:#56B6C2">\\\"\"</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">}"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    ],</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    "isError"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">false</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-json" data-highlighter="shiki" data-ext="json" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-json"><span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "jsonrpc"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"2.0"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "id"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">  "result"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    "content"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: [</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "type"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"text"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "text"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"{cwd:/Users/fdncred/src/nushell,history_index:0,timestamp:2026-06-30T06:52:27.000000+00:00,output:{a:1,b:[2,3]}}"</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    ],</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    "structuredContent"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">      "cwd"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"/Users/fdncred/src/nushell"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">      "history_index"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">0</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">      "timestamp"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">"2026-06-30T06:52:27.000000+00:00"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">      "output"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: {</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "a"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">1</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">        "b"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: [</span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">2</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">, </span><span style="--shiki-light:#B5CEA8;--shiki-dark:#B5CEA8;--shiki-onedarkpro:#D19A66">3</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">]</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">      }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">    },</span></span>
<span class="line"><span style="--shiki-light:#9CDCFE;--shiki-dark:#9CDCFE;--shiki-onedarkpro:#E06C75">    "isError"</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#D19A66">false</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">  }</span></span>
<span class="line"><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div>
</div><h3>Improved errors for negative indices in cell paths  </h3>
<p>Improved error messages when negative indices are used in cell paths.</p>
<p>Previously, negative indices could produce misleading &quot;Row number too large&quot; errors (e.g., <code>[[&quot;foo&quot;, &quot;bar&quot;], [&quot;foo&quot;, &quot;baz&quot;]] | get 0.-1</code>) or generic &quot;NeedsPositiveValue&quot; errors (e.g., <code>[&quot;foo&quot;, &quot;bar&quot;, &quot;baz&quot;] | get (-1)</code>).</p>
<p>Now Nushell reports clear messages such as &quot;negative index is not supported in cell path&quot; or &quot;can't convert negative number to cell path&quot;.</p>
<h3>Correctly parse <code>oneof</code> with a closure without pipe  </h3>
<h4><code>oneof&lt;..., table&gt;</code></h4>
<p>In some specific cases, the parser could reject values provided to <code>oneof</code> typed parameters, such as rejecting table literal syntax for <code>oneof&lt;.., table&gt;</code>:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> cmd</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [--flag: oneof&#x3C;record, table>]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {}</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">cmd</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --flag </span><span style="color:#80858f;background-color:#e05561;--shiki-onedarkpro-font-weight:bold;--shiki-light:#D4D4D4;--shiki-light-bg:#cd3131;--shiki-light-font-weight:bold;--shiki-dark:#D4D4D4;--shiki-dark-bg:#cd3131;--shiki-dark-font-weight:bold">[[foo]; 1]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::parse_mismatch_with_full_string_msg</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Parse mismatch during operation.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #17:1:12</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ cmd --flag [[foo]; 1]</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">           ─────┬────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                 </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── expected oneof&#x3C;record, table></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><p>The parser no longer considers such code invalid.</p>
<h4><code>oneof&lt;..., closure&gt;</code></h4>
<p>Arguments of type <code>oneof&lt;..., closure&gt;</code> could only be parsed as closures if they had a parameter list (<code>{|| }</code>).</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> cmd</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [--flag: oneof&#x3C;list, closure>]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {}</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">cmd</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --flag</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {|| </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">ls</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> }</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">cmd</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --flag </span><span style="color:#80858f;background-color:#e05561;--shiki-onedarkpro-font-weight:bold;--shiki-light:#D4D4D4;--shiki-light-bg:#cd3131;--shiki-light-font-weight:bold;--shiki-dark:#D4D4D4;--shiki-dark-bg:#cd3131;--shiki-dark-font-weight:bold">{ ls }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::parse_mismatch_with_full_string_msg</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Parse mismatch during operation.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #21:1:12</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ cmd --flag { ls }</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">           ───┬──</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·               </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── expected non-block value: oneof&#x3C;list&#x3C;any>, closure()></span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><p>The parser now accepts calls like <code>cmd --flag { ls }</code></p>
<h3>Fixed table alignment with <code>header_on_separator</code>  </h3>
<p>Alignment issues in <code>table</code> when <code>header_on_separator</code> is on are fixed:</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>╭─#─┬─align──┬────val─────╮</span></span>
<span class="line"><span>│ 0 │ _      │ __________ │</span></span>
<span class="line"><span>│ 1 │ left   │ a          │</span></span>
<span class="line"><span>│ 2 │ right  │          0 │</span></span>
<span class="line"><span>│ 3 │ left   │          a │</span></span>
<span class="line"><span>│ 4 │ center │     ∅      │</span></span>
<span class="line"><span>│ 5 │ left   │     a      │</span></span>
<span class="line"><span>│ 6 │ center │     ∅      │</span></span>
<span class="line"><span>│ 7 │ right  │          0 │</span></span>
<span class="line"><span>╰───┴────────┴────────────╯</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>╭─#─┬─align──┬────val─────╮</span></span>
<span class="line"><span>│ 0 │ _      │ __________ │</span></span>
<span class="line"><span>│ 1 │ left   │ a          │</span></span>
<span class="line"><span>│ 2 │ right  │          0 │</span></span>
<span class="line"><span>│ 3 │ left   │ a          │</span></span>
<span class="line"><span>│ 4 │ center │     ∅      │</span></span>
<span class="line"><span>│ 5 │ left   │ a          │</span></span>
<span class="line"><span>│ 6 │ center │     ∅      │</span></span>
<span class="line"><span>│ 7 │ right  │          0 │</span></span>
<span class="line"><span>╰───┴────────┴────────────╯</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Add <code>--full-reparse/-f</code> to <code>run</code> command  </h3>
<p>The <code>run</code> command now supports <code>--full-reparse</code>/<code>-f</code>, making workflows like <code>watch . -g *.nu | where path ends-with test.nu | each -f { run -f ./test.nu }</code> work as expected. Running scripts repeatedly is also fixed: starting with <code>nu -n</code>, then running <code>run toolkit.nu</code> twice now works, whereas previously a caching bug prevented the same file from being run more than once.</p>
<h3>Improved default steps for fractional float ranges  </h3>
<p>Float ranges without an explicit step now use more natural fractional steps, so <code>0.1..0.3</code> yields <code>0.1, 0.2, 0.3</code> instead of just <code>0.1</code>. This also means <code>0.1..0.3 | last</code> now correctly returns <code>0.3</code>. Float range values are now rounded to match the step's decimal precision, which removes floating-point display artifacts like <code>0.30000000000000004</code> from serialized output.</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> last</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">0.1</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to json</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -r</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[0.1]</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> last</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">0.3</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to json</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -r</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[0.1,0.2,0.3]</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.001</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.005</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to json</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -r</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[0.001,0.002,0.003,0.004,0.005]</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.0</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">0.5</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> to json</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -r</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">[0.0,0.1,0.2,0.3,0.4,0.5]</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Fixed stor open return type  </h3>
<p><code>stor open</code> returns the custom value <code>SQLiteDatabase</code>, yet its signature had <code>sqlite-in-memory</code> as the return type. This causes problems with the <code>enforce-runtime-annotations</code> experimental option:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> db</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">stor open</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::cant_convert</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Can't convert to sqlite-in-memory.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #2:1:10</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ let db = stor open</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">         ────┬────</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·              </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── can't convert SQLiteDatabase to sqlite-in-memory</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><p>The return type has been corrected to <code>SQLiteDatabase</code>.</p>
<h3>Improved module descriptions in completions and LSP hovers  </h3>
<p>Descriptions of module completions for <code>use</code> were previously not formatted. Instead of what you would get from <code>help modules ...</code>, the descriptions were the modules' doc comment <em>as it appeared</em> in the file (<code>#</code> and leading indent not removed).</p>
<p>Before:</p>
<div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>> use c</span></span>
<span class="line"><span>      ╭───────╮ ╭─────────────────────────────────────────────╮</span></span>
<span class="line"><span>      │clip   │ │# Commands for interacting with the system   │</span></span>
<span class="line"><span>      ╰───────╯ │clipboard # # > These commands require your  │</span></span>
<span class="line"><span>                │terminal to support OSC 52 # > Terminal      │</span></span>
<span class="line"><span>                │multiplexers such as screen, tmux, zellij etc│</span></span>
<span class="line"><span>                │may interfere with this command              │</span></span>
<span class="line"><span>                ╰─────────────────────────────────────────────╯</span></span></code></pre>
</div><p>After:</p>
<div class="language-" data-highlighter="shiki" data-ext style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-"><span class="line"><span>> use c</span></span>
<span class="line"><span>      ╭───────╮ ╭────────────────────────────────────────╮</span></span>
<span class="line"><span>      │clip   │ │Commands for interacting with the system│</span></span>
<span class="line"><span>      ╰───────╯ │clipboard                               │</span></span>
<span class="line"><span>                ╰────────────────────────────────────────╯</span></span></code></pre>
</div><h3>Fix aliases breaking when variables used in them are shadowed  </h3>
<p>Shadowing variables used in aliases could cause the alias to stop working:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">10</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">alias</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> xx</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> =</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> print</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $x</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">xx</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">10</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">20</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">xx</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::shell::variable_not_found</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Variable not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #32:1:18</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ alias xx = print $x</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">                 ─┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·                   </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── variable not found</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div><p>Now aliases continue working with the original value of the variable:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">10</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">alias</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> xx</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> =</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> print</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> $x</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">xx</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">10</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> x</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">20</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">xx</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">10</span></span></code></pre>
</div><h3>Fixed a bug in <code>--</code> option parsing  </h3>
<p>Fixed a bug with how <code>--</code> was handled with <code>--wrapped</code> custom commands. Now you can do things like this:</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">def</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --wrapped</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> example</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> [--my-flag: string ...rest]</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> {</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">  let</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC"> rest</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> = </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$rest</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> skip</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  # skip the '--' delimiter</span></span>
<span class="line"><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">  $rest</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> each</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> { </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">{</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">type</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">(</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$in</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> describe</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> value</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">: </span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$in</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">}</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> }</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> print</span></span>
<span class="line"><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">  print</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> $"</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">--my-flag='</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">(</span><span style="color:#c162de;--shiki-light:#BC3FBC;--shiki-dark:#BC3FBC">$my_flag</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">)</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">"</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">}</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold">example</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> --my-flag</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">=</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">"hi"</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> --</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> true</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> false</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 001</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> --my-flag="goodbye"</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬────────┬───────────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │  </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">type</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">  │       </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">value</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">       │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼────────┼───────────────────┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ string │ true              │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ string │ false             │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ string │ 001               │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">3</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ string │ --my-flag=goodbye │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴────────┴───────────────────╯</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">--my-flag='hi'</span></span></code></pre>
</div><h3>Improved Ctrl-C handling in <code>from json</code>  </h3>
<p>Ctrl+C is more responsive in <code>from json</code>, <code>from kdl</code>, and <code>from xml</code>. They now respond promptly to Ctrl+C when parsing large files. Pressing Ctrl+C during parsing will interrupt the command and return to the prompt. It will also produce better parse-error messages and should now show a focused snippet of the source around the error location instead of dumping the entire file content.</p>
<h3>Improved conflicting column names in <code>flatten</code>  </h3>
<p>This pr fixes flatten renaming column behavior</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">b</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">9</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]], </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> flatten</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼───┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴───╯</span></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">b</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">, </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [[[</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">a</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]; [</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">9</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]], </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold">]]</span></span>
<span class="line"><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">|</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> flatten</span><span style="color:#4aa5f0;--shiki-onedarkpro-font-weight:bold;--shiki-light:#2472C8;--shiki-light-font-weight:bold;--shiki-dark:#2472C8;--shiki-dark-font-weight:bold"> -a</span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79"> b</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭───┬─────┬───╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">#</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">b_a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">a</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">├───┼─────┼───┤</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │   9 │ 1 │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰───┴─────┴───╯</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Row-conditions should parse <code>{}</code> as closure, not record  </h3>
<p>Empty braces (<code>{}</code>) as row conditions are now parsed as empty closures rather than empty records.</p>
<div style="max-width: 100%; overflow-x: auto;">
<div style="display: grid; grid-template-columns: 1fr 1fr; column-gap: 2rem;">
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> where </span><span style="color:#80858f;background-color:#e05561;--shiki-onedarkpro-font-weight:bold;--shiki-light:#D4D4D4;--shiki-light-bg:#cd3131;--shiki-light-font-weight:bold;--shiki-dark:#D4D4D4;--shiki-dark-bg:#cd3131;--shiki-dark-font-weight:bold">{}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">Error: </span><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">nu::parser::type_mismatch</span></span>
<span class="line"></span>
<span class="line"><span style="color:#e05561;--shiki-light:#cd3131;--shiki-dark:#cd3131">  ×</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> Type mismatch.</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╭─[</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-onedarkpro-text-decoration:underline;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-light-text-decoration:underline;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold;--shiki-dark-text-decoration:underline">repl_entry #39:1:14</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">]</span></span>
<span class="line"><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │ 1..3 | where {}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   · </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">             ─┬</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ·               </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">╰── expected bool, found record</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">   ╰────</span></span>
<span class="line"></span></code></pre>
</div>
</div></div>
<div>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">1</span><span style="color:#d18f52;--shiki-light:#E5E510;--shiki-dark:#E5E510">..</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold">3</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> where</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> {}</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╭────────────╮</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">│ </span><span style="color:#80858f80;--shiki-light:#D4D4D480;--shiki-dark:#D4D4D480">empty list</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"> │</span></span>
<span class="line"><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">╰────────────╯</span></span></code></pre>
</div>
</div></div>
</div>
</div>
<h3>Improved special-character handling in <code>idx search</code>  </h3>
<p>Allow <code>idx search 'Lyrics['</code> to work by taking <code>[</code> literally instead of assuming it's a glob. Also added a couple examples explaining how <code>idx search</code> should work.</p>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Brackets and question marks are treated as literal text, not glob patterns.">
    <span>Brackets and question marks are treated as literal text, not glob patterns.</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> search</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> 'arr[0]'</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Glob patterns with a path separator filter which files to search.">
    <span>Glob patterns with a path separator filter which files to search.</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> search</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> pattern</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> */tests/*</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Brace expansion globs also filter which files to search.">
    <span>Brace expansion globs also filter which files to search.</span>
  </div>
  <div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">idx</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> search</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> pattern</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> *.</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">{</span><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">rs</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">,</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">js</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">}</span></span></code></pre>
</div>
</div><h3>Fixed table mode handling from CLI arguments  </h3>
<p>Respect the table mode when passed in on the cli when running script so you can do things like this.</p>
<div class="language-ansi" data-highlighter="shiki" data-ext="ansi" style="background-color:#1e1e1e;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4"><pre class="shiki shiki-themes one-dark-pro dark-plus dark-plus vp-code"><code class="language-ansi"><span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#8cc265;--shiki-light:#0DBC79;--shiki-dark:#0DBC79">'1..3 | each { { number: $in, comment: "hello" } }'</span><span style="color:#c162de;--shiki-onedarkpro-font-weight:bold;--shiki-light:#BC3FBC;--shiki-light-font-weight:bold;--shiki-dark:#BC3FBC;--shiki-dark-font-weight:bold"> |</span><span style="color:#42b3c2;--shiki-onedarkpro-font-weight:bold;--shiki-light:#11A8CD;--shiki-light-font-weight:bold;--shiki-dark:#11A8CD;--shiki-dark-font-weight:bold"> save</span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD"> script.nu</span></span>
<span class="line"><span style="color:#4cd1e0;--shiki-light:#29B8DB;--shiki-dark:#29B8DB">> </span><span style="color:#42b3c2;--shiki-light:#11A8CD;--shiki-dark:#11A8CD">nu</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> -m</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> "none"</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> script.nu</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> #</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   number</span><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold">   comment</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 0</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        1   hello</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 1</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        2   hello</span></span>
<span class="line"><span style="color:#8cc265;--shiki-onedarkpro-font-weight:bold;--shiki-light:#0DBC79;--shiki-light-font-weight:bold;--shiki-dark:#0DBC79;--shiki-dark-font-weight:bold"> 2</span><span style="color:#80858f;--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4">        3   hello</span></span></code></pre>
</div><h3>Improved <code>input list</code> streaming and rendering  </h3>
<p><code>input list</code> no longer waits for streamed input to be fully collected before showing the first paint. It now stays responsive while items stream in and shows a live-updating count of collected items in the footer. In table mode, header cells now expand properly along with their columns when scrolling through the list, and control characters like tabs no longer throw off UI alignment during rendering.</p>
<h3>Fixed <code>nu --plugins</code> handling  </h3>
<p>The nushell cli parsing now supports the <code>--plugins</code> parameter in these variations</p>
<div class="language-nushell" data-highlighter="shiki" data-ext="nushell" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-nushell"><span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">plugins</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> /path/to/nu_plugin_one</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">plugins</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> /path/to/nu_plugin_two</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # multiple --plugins params</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">plugins</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '[/path/to/nu_plugin_one, /path/to/nu_plugin_two]'</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # comma separation</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">plugins</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '[/path/to/nu_plugin_one /path/to/nu_plugin_two]'</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # no comma separation</span></span>
<span class="line"><span style="--shiki-light:#4EC9B0;--shiki-dark:#4EC9B0;--shiki-onedarkpro:#E5C07B">nu</span><span style="--shiki-light:#C586C0;--shiki-light-font-style:inherit;--shiki-dark:#C586C0;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#C678DD;--shiki-onedarkpro-font-style:italic"> --</span><span style="--shiki-light:#9CDCFE;--shiki-light-font-style:inherit;--shiki-dark:#9CDCFE;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#E06C75;--shiki-onedarkpro-font-style:italic">plugins</span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379"> '["/path/to plugin/nu_plugin_one", "/path/to plugin/nu_plugin_two"]'</span><span style="--shiki-light:#6A9955;--shiki-light-font-style:inherit;--shiki-dark:#6A9955;--shiki-dark-font-style:inherit;--shiki-onedarkpro:#7F848E;--shiki-onedarkpro-font-style:italic">  # quoted paths, with or without commas</span></span></code></pre>
</div><h3>Other fixes </h3>
<ul>
<li>Fixed a regression where <code>commandline edit</code> did not update the commandline in REPL on 0.113.0. <code>commandline edit</code> now correctly updates the visible prompt buffer again. (<a href="https://github.com/nushell/nushell/pull/18301" target="_blank" rel="noopener noreferrer">#18301</a>)</li>
<li>
<ul>
<li>Fixed an issue where <code>math abs</code> would crash Nushell when given the minimum 64-bit integer or duration; it now reports an overflow error instead. (<a href="https://github.com/nushell/nushell/pull/18275" target="_blank" rel="noopener noreferrer">#18275</a>)</li>
</ul>
</li>
<li><code>bytes index-of</code> doesn't panic on empty patterns anymore (<a href="https://github.com/nushell/nushell/pull/18254" target="_blank" rel="noopener noreferrer">#18254</a>)</li>
<li>When using <code>explore config</code> if you supply <code>--output &lt;file&gt;</code> when you're editing the config i.e. not using <code>explore config</code> in json mode, it will fail fast and let you know that isn't possible instead of you finding that out later. (<a href="https://github.com/nushell/nushell/pull/18327" target="_blank" rel="noopener noreferrer">#18327</a>)</li>
<li>Fix Nix package evaluation for building from flake. (<a href="https://github.com/nushell/nushell/pull/18330" target="_blank" rel="noopener noreferrer">#18330</a>)</li>
<li>Now, when you pass an interpolated string (e. g. <code>$&quot;($env.pwd)/foo&quot;</code>, <code>~/($bar)</code>) to a flag or argument of type <code>glob</code> they will be converted automatically just like with regular strings instead of throwing a type error. (<a href="https://github.com/nushell/nushell/pull/18263" target="_blank" rel="noopener noreferrer">#18263</a>)</li>
<li>Fixed an issue where <code>lines</code> failed on input containing invalid UTF-8. By default, <code>lines</code> now replaces invalid UTF-8 bytes and continues processing, and <code>lines --strict</code> can be used to fail on invalid UTF-8. (<a href="https://github.com/nushell/nushell/pull/18261" target="_blank" rel="noopener noreferrer">#18261</a>)</li>
<li>Fixed <code>input list --fuzzy</code> truncating ANSI-styled options too early because formatting escape sequences were counted as visible width. (<a href="https://github.com/nushell/nushell/pull/18340" target="_blank" rel="noopener noreferrer">#18340</a>)</li>
<li>Fixed an issue where <code>uniq-by</code> silently collapsed every value into a single row when given a list whose elements are not records/tables. <code>uniq-by</code> now reports an error in that case (e.g. <code>[1 2 2] | uniq-by foo</code>), and it also reports a missing column when <strong>any</strong> record in the input lacks the requested column, not just the first one. (<a href="https://github.com/nushell/nushell/pull/18309" target="_blank" rel="noopener noreferrer">#18309</a>)</li>
<li><code>bits shl</code> and <code>bits shr</code> now default to an 8-byte word size when <code>--number-bytes</code> is not provided, so shifts such as <code>1 | bits shl 20</code> no longer fail because the input was auto-sized to one byte. (<a href="https://github.com/nushell/nushell/pull/18277" target="_blank" rel="noopener noreferrer">#18277</a>)</li>
<li>Fixed a regression where lists like <code>[.foons]</code> will cause parser error. (<a href="https://github.com/nushell/nushell/pull/18363" target="_blank" rel="noopener noreferrer">#18363</a>)</li>
<li>Works better with Windows now for things like <code>glob c:\apps\*</code>. (<a href="https://github.com/nushell/nushell/pull/18367" target="_blank" rel="noopener noreferrer">#18367</a>)</li>
<li>Fixed a regression where all custom commands with <code>--wrapped</code> where numbers and strings passed to externals as <code>glob</code> now everything is passed as <code>string</code> or <code>glob</code> or creates an error. (<a href="https://github.com/nushell/nushell/pull/18372" target="_blank" rel="noopener noreferrer">#18372</a>)</li>
<li>While using experimental option <code>dc-glob</code>, <code>glob</code> expands <code>~</code> as expected now. (<a href="https://github.com/nushell/nushell/pull/18373" target="_blank" rel="noopener noreferrer">#18373</a>)</li>
<li>Fixes a bug where <code>glob .cargo/bin/nu*</code> nor <code>%ls .cargo/bin/nu*</code> wouldn't work. (<a href="https://github.com/nushell/nushell/pull/18375" target="_blank" rel="noopener noreferrer">#18375</a>)</li>
<li>Fix a breaking change that allows glob to still work in case-insensitive mode when using the <code>--ignore-case/-i</code> when using the dc-glob experimental-option. (<a href="https://github.com/nushell/nushell/pull/18376" target="_blank" rel="noopener noreferrer">#18376</a>)</li>
<li>glob with dc-glob = true now emits absolute paths when absolute patterns are used. The simple example was doing <code>glob ~/.cargo/bin/nu*</code> from within <code>~/Downloads</code> and making sure the results start with <code>/Users/&lt;username&gt;/.cargo/bin/nu</code>. Previously they incorrectly started with <code>/Users/&lt;username&gt;/Downloads/nu*</code> which was completely wrong. Thanks @Tyarel8 ! (<a href="https://github.com/nushell/nushell/pull/18378" target="_blank" rel="noopener noreferrer">#18378</a>)</li>
<li>Fix a bug with dcglob fixing a problem with rm. (<a href="https://github.com/nushell/nushell/pull/18391" target="_blank" rel="noopener noreferrer">#18391</a>)</li>
<li>All commands that can accept a polars expression can now accept a polars selector as input (<a href="https://github.com/nushell/nushell/pull/18394" target="_blank" rel="noopener noreferrer">#18394</a>)</li>
<li>Fixed a bug of AST flattening where leading pipe characters in a block may lead to wrong reedline renderings. (<a href="https://github.com/nushell/nushell/pull/18386" target="_blank" rel="noopener noreferrer">#18386</a>)</li>
<li>Small improvement in token-efficiency for the <code>nu --mcp</code> agent tool instructions. (<a href="https://github.com/nushell/nushell/pull/18413" target="_blank" rel="noopener noreferrer">#18413</a>)</li>
<li>
<ul>
<li>Fixed a panic in <code>str index-of --grapheme-clusters</code> when the search string matched inside a multi–code-point grapheme cluster (flag emoji, ZWJ sequence, skin-tone modifier, or combining mark); it now returns <code>-1</code>. (<a href="https://github.com/nushell/nushell/pull/18418" target="_blank" rel="noopener noreferrer">#18418</a>)</li>
</ul>
</li>
<li>Typing <code>exit</code> in the repl will no longer use a different logic and will call the <code>exit</code> command normally. Furthermore, any invocation of <code>exit</code> (e.g. inside a keybind of custom command) will restore the terminal cursor to the state it was before rather than only in the aforementioned case. (<a href="https://github.com/nushell/nushell/pull/18389" target="_blank" rel="noopener noreferrer">#18389</a>)</li>
<li>Don't SIGABRT when closing your terminal or using nu as an MCP server. (<a href="https://github.com/nushell/nushell/pull/18428" target="_blank" rel="noopener noreferrer">#18428</a>)</li>
<li>Fixed an issue where inserting or upserting into a nested cell path of an empty list, such as <code>[] | insert 0.0 1</code>, produced a confusing error mentioning <code>18446744073709551615</code>. It now reports a clear &quot;Row number too large (empty content)&quot; error. (<a href="https://github.com/nushell/nushell/pull/18463" target="_blank" rel="noopener noreferrer">#18463</a>)</li>
<li>
<ul>
<li>Fixed a compiler error (<code>register_uninitialized</code>) when the right-hand side of an <code>and</code>/<code>or</code>/comparison collects <code>$in</code>, for example <code>... | where $in.x &gt; 0 and not ($in.x &gt; 5)</code>. (<a href="https://github.com/nushell/nushell/pull/18465" target="_blank" rel="noopener noreferrer">#18465</a>)</li>
</ul>
</li>
<li>nu <code>--log-include</code> or <code>--log-exclude</code> now accept module or target name correctly. Previously it accepted log level instead. (<a href="https://github.com/nushell/nushell/pull/18464" target="_blank" rel="noopener noreferrer">#18464</a>)</li>
<li>Fixed an issue where <code>math avg</code>, <code>math sum</code>, and other math commands on tables produced a generic &quot;Unable to give a result with this input&quot; error instead of the real underlying error. List and table inputs now produce consistent error messages. (<a href="https://github.com/nushell/nushell/pull/18480" target="_blank" rel="noopener noreferrer">#18480</a>)</li>
<li><code>help aliases</code> now correctly shows the alias name (not the target command name) for aliases to internal commands. (<a href="https://github.com/nushell/nushell/pull/18483" target="_blank" rel="noopener noreferrer">#18483</a>)</li>
</ul>
<h1>Hall of fame </h1>
<p>Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏</p>
<p>| author                                         | change                                                          | link                                                    |
|</p>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-07-04T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #358</title>
    <id>https://www.nushell.sh/blog/2026-07-03-twin0358.html</id>
    <link href="https://www.nushell.sh/blog/2026-07-03-twin0358.html"/>
    <updated>2026-07-03T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-07-24, including PRs merged Friday, 2026-06-26 through Thursday, 2026-07-02.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18513" target="_blank" rel="noopener noreferrer">Ignored cargo audit errors about <code>quickxml</code> (#18513)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18476" target="_blank" rel="noopener noreferrer">Feature gated the <code>nu-heavy-utils</code> crate (#18476)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18500" target="_blank" rel="noopener noreferrer">fixed <code>nu --plugins</code> handling (#18500)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18477" target="_blank" rel="noopener noreferrer">allowed <code>idx find</code> and <code>idx search</code> to show hits relative to cwd (#18477)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18474" target="_blank" rel="noopener noreferrer">bumped reedline to 4d20caf (#18474)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18473" target="_blank" rel="noopener noreferrer">added <code>semver</code> as a custom value type with support commands (#18473)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18467" target="_blank" rel="noopener noreferrer">added a few new commands (union, intersect, difference, permutations, combinations) (#18467)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18499" target="_blank" rel="noopener noreferrer">added structured evaluate output (#18499)</a></li>
</ul>
</li>
<li>
<p>@pheenty:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18498" target="_blank" rel="noopener noreferrer">suggested command categories in help messages (#18498)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18482" target="_blank" rel="noopener noreferrer">fixed multiple search items help message (#18482)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18481" target="_blank" rel="noopener noreferrer">added math cbrt builtin (#18481)</a></li>
</ul>
</li>
<li>
<p>@yertto:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18497" target="_blank" rel="noopener noreferrer">added –prefer-integers flag for whole-number float conversion (#18497)</a></li>
</ul>
</li>
<li>
<p>@Himanshu121865:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18496" target="_blank" rel="noopener noreferrer">Fixed <code>--content-type</code> flag being ignored for JSON body variants (#17640) (#18496)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18483" target="_blank" rel="noopener noreferrer">Fixed showing target command name instead of alias name (#18351) (#18483)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18489" target="_blank" rel="noopener noreferrer">fixed <code>toolkit run pr</code> runtime type checking issue (#18489)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18479" target="_blank" rel="noopener noreferrer">Made error record passed to the <code>catch</code> block have more details (#18479)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18450" target="_blank" rel="noopener noreferrer">Made even more type system improvements (#18450)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18449" target="_blank" rel="noopener noreferrer">Made assortment of std improvements (#18449)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18436" target="_blank" rel="noopener noreferrer">Made <code>from ods</code> and <code>from xlsx</code> consistent (breaking change) (#18436)</a></li>
</ul>
</li>
<li>
<p>@cacdu:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18480" target="_blank" rel="noopener noreferrer">Fixed math errors propagation from table columns instead of silencing them (#18480)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18478" target="_blank" rel="noopener noreferrer">Bumped reedline to 4a5ebce (#18478)</a></li>
</ul>
</li>
<li>
<p>@jlcrochet:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18462" target="_blank" rel="noopener noreferrer">Improved <code>input list</code> streaming stability/perf and rendering (#18462)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18276" target="_blank" rel="noopener noreferrer">Refactored to remove deprecated features of <code>grid</code> command (#18276)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18505" target="_blank" rel="noopener noreferrer">bumped lsp-server from 0.7.9 to 0.8.0 (#18505)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18503" target="_blank" rel="noopener noreferrer">bumped quick-xml from 0.40.1 to 0.41.0 (#18503)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-07-24, including PRs merged Friday, 2026-06-26 through Thursday, 2026-07-02.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18513" target="_blank" rel="noopener noreferrer">Ignored cargo audit errors about <code>quickxml</code> (#18513)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18476" target="_blank" rel="noopener noreferrer">Feature gated the <code>nu-heavy-utils</code> crate (#18476)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18500" target="_blank" rel="noopener noreferrer">fixed <code>nu --plugins</code> handling (#18500)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18477" target="_blank" rel="noopener noreferrer">allowed <code>idx find</code> and <code>idx search</code> to show hits relative to cwd (#18477)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18474" target="_blank" rel="noopener noreferrer">bumped reedline to 4d20caf (#18474)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18473" target="_blank" rel="noopener noreferrer">added <code>semver</code> as a custom value type with support commands (#18473)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18467" target="_blank" rel="noopener noreferrer">added a few new commands (union, intersect, difference, permutations, combinations) (#18467)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18499" target="_blank" rel="noopener noreferrer">added structured evaluate output (#18499)</a></li>
</ul>
</li>
<li>
<p>@pheenty:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18498" target="_blank" rel="noopener noreferrer">suggested command categories in help messages (#18498)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18482" target="_blank" rel="noopener noreferrer">fixed multiple search items help message (#18482)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18481" target="_blank" rel="noopener noreferrer">added math cbrt builtin (#18481)</a></li>
</ul>
</li>
<li>
<p>@yertto:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18497" target="_blank" rel="noopener noreferrer">added –prefer-integers flag for whole-number float conversion (#18497)</a></li>
</ul>
</li>
<li>
<p>@Himanshu121865:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18496" target="_blank" rel="noopener noreferrer">Fixed <code>--content-type</code> flag being ignored for JSON body variants (#17640) (#18496)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18483" target="_blank" rel="noopener noreferrer">Fixed showing target command name instead of alias name (#18351) (#18483)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18489" target="_blank" rel="noopener noreferrer">fixed <code>toolkit run pr</code> runtime type checking issue (#18489)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18479" target="_blank" rel="noopener noreferrer">Made error record passed to the <code>catch</code> block have more details (#18479)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18450" target="_blank" rel="noopener noreferrer">Made even more type system improvements (#18450)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18449" target="_blank" rel="noopener noreferrer">Made assortment of std improvements (#18449)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18436" target="_blank" rel="noopener noreferrer">Made <code>from ods</code> and <code>from xlsx</code> consistent (breaking change) (#18436)</a></li>
</ul>
</li>
<li>
<p>@cacdu:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18480" target="_blank" rel="noopener noreferrer">Fixed math errors propagation from table columns instead of silencing them (#18480)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18478" target="_blank" rel="noopener noreferrer">Bumped reedline to 4a5ebce (#18478)</a></li>
</ul>
</li>
<li>
<p>@jlcrochet:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18462" target="_blank" rel="noopener noreferrer">Improved <code>input list</code> streaming stability/perf and rendering (#18462)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18276" target="_blank" rel="noopener noreferrer">Refactored to remove deprecated features of <code>grid</code> command (#18276)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18505" target="_blank" rel="noopener noreferrer">bumped lsp-server from 0.7.9 to 0.8.0 (#18505)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18503" target="_blank" rel="noopener noreferrer">bumped quick-xml from 0.40.1 to 0.41.0 (#18503)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>@app/dependabot:
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2189" target="_blank" rel="noopener noreferrer">bumped js-yaml from 3.14.2 to 3.15.0 (#2189)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1115" target="_blank" rel="noopener noreferrer">Added a pull request template (#1115)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1109" target="_blank" rel="noopener noreferrer">Added visual mode on a unified Cursor + rest-policy model (breaking change) (#1109)</a></li>
</ul>
</li>
<li>
<p>@MerlijnW70:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1111" target="_blank" rel="noopener noreferrer">Fixed abbreviation expansion inserting a double trailing space (#1111)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@tonythethompson:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1265" target="_blank" rel="noopener noreferrer">Fixed scale-minmax-table failing on current Nu (undefined column2, deprecated merge) (#1265)</a></li>
</ul>
</li>
<li>
<p>@rossnomann:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1264" target="_blank" rel="noopener noreferrer">Added git cherry to git-completions (#1264)</a></li>
</ul>
</li>
</ul>
<h2>Tree-sitter</h2>
<ul>
<li>@blindFS:
<ul>
<li><a href="https://github.com/nushell/tree-sitter-nu/pull/250" target="_blank" rel="noopener noreferrer">Fixed dot in flag identifier (#250)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-07-03T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #357</title>
    <id>https://www.nushell.sh/blog/2026-06-26-twin0357.html</id>
    <link href="https://www.nushell.sh/blog/2026-06-26-twin0357.html"/>
    <updated>2026-06-26T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-07-24, including PRs merged Friday, 2026-06-19 through Thursday, 2026-06-25.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18469" target="_blank" rel="noopener noreferrer">bumped rusqlite to 0.40.1 (#18469)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18468" target="_blank" rel="noopener noreferrer">added new log-level <code>perf</code> so we can more easily see only performance logging (#18468)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18455" target="_blank" rel="noopener noreferrer">bumped reedline to commit 31a91c3 (#18455)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18453" target="_blank" rel="noopener noreferrer">bumped quinn-proto (#18453)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18448" target="_blank" rel="noopener noreferrer">bumped fff-search deps to 0.9.6 (#18448)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18447" target="_blank" rel="noopener noreferrer">fixed <code>idx search 'Lyrics['</code> bug (#18447)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18446" target="_blank" rel="noopener noreferrer">respected table mode passed on cli for scripts and repl (#18446)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18443" target="_blank" rel="noopener noreferrer">allowed <code>is-terminal</code> to detect redirection (#18443)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18398" target="_blank" rel="noopener noreferrer">refactored pushdown code into a query_plan to make it easier to add more pushdown filters (#18398)</a></li>
</ul>
</li>
<li>
<p>@maximilize:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18466" target="_blank" rel="noopener noreferrer">added regression test for non-block <code>for</code> body (#13746) (#18466)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18465" target="_blank" rel="noopener noreferrer">fixed compile: clone <code>$in</code> register for binary-op RHS to avoid clobbering LHS (#18323) (#18465)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18464" target="_blank" rel="noopener noreferrer">refactored logging: simplified CLI filter parsing to allow target or module paths (#18464)</a></li>
</ul>
</li>
<li>
<p>@hexbinoct:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18463" target="_blank" rel="noopener noreferrer">fixed usize underflow on insert/upsert into a nested path of an empty list (#18463)</a></li>
</ul>
</li>
<li>
<p>@flying-sheep:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18444" target="_blank" rel="noopener noreferrer">added <code>--right</code> to <code>split row</code> and <code>split column</code> (#18444)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18442" target="_blank" rel="noopener noreferrer">serialized <code>Range</code> via string representation (#18442)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18441" target="_blank" rel="noopener noreferrer">fixed CI not testing doctests (#18441)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18440" target="_blank" rel="noopener noreferrer">added navigation shortcuts to <code>explore config</code> (#18440)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18438" target="_blank" rel="noopener noreferrer">made row-conditions parse <code>{}</code> as closure, not record (#18438)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18430" target="_blank" rel="noopener noreferrer">improved type system (#18430)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18359" target="_blank" rel="noopener noreferrer">made experimental option <code>enforce-runtime-annotations</code> opt out (#18359)</a></li>
</ul>
</li>
<li>
<p>@stuartcarnie:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18428" target="_blank" rel="noopener noreferrer">fixed SIGABRT from broken stdout/stderr on parent exit (#18428)</a></li>
</ul>
</li>
<li>
<p>@mkatychev:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18148" target="_blank" rel="noopener noreferrer">added lsp feature flag to executable (#18148)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18459" target="_blank" rel="noopener noreferrer">bumped bytes from 1.11.1 to 1.12.0 (#18459)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18458" target="_blank" rel="noopener noreferrer">bumped rmcp from 1.7.0 to 1.8.0 (#18458)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18457" target="_blank" rel="noopener noreferrer">bumped actions/checkout from 6 to 7 (#18457)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-07-24, including PRs merged Friday, 2026-06-19 through Thursday, 2026-06-25.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18469" target="_blank" rel="noopener noreferrer">bumped rusqlite to 0.40.1 (#18469)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18468" target="_blank" rel="noopener noreferrer">added new log-level <code>perf</code> so we can more easily see only performance logging (#18468)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18455" target="_blank" rel="noopener noreferrer">bumped reedline to commit 31a91c3 (#18455)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18453" target="_blank" rel="noopener noreferrer">bumped quinn-proto (#18453)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18448" target="_blank" rel="noopener noreferrer">bumped fff-search deps to 0.9.6 (#18448)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18447" target="_blank" rel="noopener noreferrer">fixed <code>idx search 'Lyrics['</code> bug (#18447)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18446" target="_blank" rel="noopener noreferrer">respected table mode passed on cli for scripts and repl (#18446)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18443" target="_blank" rel="noopener noreferrer">allowed <code>is-terminal</code> to detect redirection (#18443)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18398" target="_blank" rel="noopener noreferrer">refactored pushdown code into a query_plan to make it easier to add more pushdown filters (#18398)</a></li>
</ul>
</li>
<li>
<p>@maximilize:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18466" target="_blank" rel="noopener noreferrer">added regression test for non-block <code>for</code> body (#13746) (#18466)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18465" target="_blank" rel="noopener noreferrer">fixed compile: clone <code>$in</code> register for binary-op RHS to avoid clobbering LHS (#18323) (#18465)</a></li>
</ul>
</li>
<li>
<p>@Juhan280:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18464" target="_blank" rel="noopener noreferrer">refactored logging: simplified CLI filter parsing to allow target or module paths (#18464)</a></li>
</ul>
</li>
<li>
<p>@hexbinoct:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18463" target="_blank" rel="noopener noreferrer">fixed usize underflow on insert/upsert into a nested path of an empty list (#18463)</a></li>
</ul>
</li>
<li>
<p>@flying-sheep:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18444" target="_blank" rel="noopener noreferrer">added <code>--right</code> to <code>split row</code> and <code>split column</code> (#18444)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18442" target="_blank" rel="noopener noreferrer">serialized <code>Range</code> via string representation (#18442)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18441" target="_blank" rel="noopener noreferrer">fixed CI not testing doctests (#18441)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18440" target="_blank" rel="noopener noreferrer">added navigation shortcuts to <code>explore config</code> (#18440)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18438" target="_blank" rel="noopener noreferrer">made row-conditions parse <code>{}</code> as closure, not record (#18438)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18430" target="_blank" rel="noopener noreferrer">improved type system (#18430)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18359" target="_blank" rel="noopener noreferrer">made experimental option <code>enforce-runtime-annotations</code> opt out (#18359)</a></li>
</ul>
</li>
<li>
<p>@stuartcarnie:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18428" target="_blank" rel="noopener noreferrer">fixed SIGABRT from broken stdout/stderr on parent exit (#18428)</a></li>
</ul>
</li>
<li>
<p>@mkatychev:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18148" target="_blank" rel="noopener noreferrer">added lsp feature flag to executable (#18148)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18459" target="_blank" rel="noopener noreferrer">bumped bytes from 1.11.1 to 1.12.0 (#18459)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18458" target="_blank" rel="noopener noreferrer">bumped rmcp from 1.7.0 to 1.8.0 (#18458)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18457" target="_blank" rel="noopener noreferrer">bumped actions/checkout from 6 to 7 (#18457)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2188" target="_blank" rel="noopener noreferrer">published TWiN 356 (#2188)</a></li>
</ul>
</li>
<li>
<p>@sharpchen:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2187" target="_blank" rel="noopener noreferrer">fixed comparison for pwsh and csharp (#2187)</a></li>
</ul>
</li>
<li>
<p>@kiil:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2185" target="_blank" rel="noopener noreferrer">documented match_description option for custom completions (#2185)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2186" target="_blank" rel="noopener noreferrer">bumped undici from 7.24.1 to 7.28.0 (#2186)</a></li>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2184" target="_blank" rel="noopener noreferrer">bumped markdown-it from 14.1.0 to 14.2.0 (#2184)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@lassoColombo:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/167" target="_blank" rel="noopener noreferrer">added conventional-commits module (#167)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1110" target="_blank" rel="noopener noreferrer">bumped rusqlite to 0.40.1 (#1110)</a></li>
</ul>
</li>
<li>
<p>@reubeno:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1107" target="_blank" rel="noopener noreferrer">fixed re-use prompt rows after a quiet buffer editor (#1107)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@ldsands:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1262" target="_blank" rel="noopener noreferrer">added zmx completion script (#1262)</a></li>
</ul>
</li>
<li>
<p>@kaascevich:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1261" target="_blank" rel="noopener noreferrer">updated Swift Bundler completions (#1261)</a></li>
</ul>
</li>
<li>
<p>@DeadBranches:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1260" target="_blank" rel="noopener noreferrer">fixed auto-venv: handle overlay list returning table instead of list (#1260)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-06-26T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #356</title>
    <id>https://www.nushell.sh/blog/2026-06-19-twin0356.html</id>
    <link href="https://www.nushell.sh/blog/2026-06-19-twin0356.html"/>
    <updated>2026-06-19T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-06-19, including PRs merged Friday, 2026-06-12 through Thursday, 2026-06-18.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18434" target="_blank" rel="noopener noreferrer">serialized <code>CellPath</code> via string representation (#18434)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18422" target="_blank" rel="noopener noreferrer">refactored the parser to consolidate spread operator checking logic (#18422)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18393" target="_blank" rel="noopener noreferrer">refactored type checking code (#18393)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18314" target="_blank" rel="noopener noreferrer">added non UTF-8 text support for <code>url encode</code>/<code>url decode</code> (#18314)</a></li>
</ul>
</li>
<li>
<p>@leeewee:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18418" target="_blank" rel="noopener noreferrer">fixed <code>str index-of --grapheme-clusters</code> panic on a sub-grapheme needle (#18418)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18414" target="_blank" rel="noopener noreferrer">allowed ctrl+c to work better on <code>from json</code> (#18414)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18410" target="_blank" rel="noopener noreferrer">added new <code>random pass</code> command (#18410)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18408" target="_blank" rel="noopener noreferrer">fixed a bug in the end-of-options functionality (#18408)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18397" target="_blank" rel="noopener noreferrer">reverted &quot;pin ratatui-widgets to 0.3.0 to prevent need for --locked&quot; (#18397)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18395" target="_blank" rel="noopener noreferrer">pinned ratatui-widgets to 0.3.0 to prevent need for --locked (#18395)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18413" target="_blank" rel="noopener noreferrer">saved ~100 tokens in evaluate_tool.md instructions (#18413)</a></li>
</ul>
</li>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18407" target="_blank" rel="noopener noreferrer">fixed flatten not renaming for later parent conflicting columns (#18407)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18404" target="_blank" rel="noopener noreferrer">added support for reedline menu input/output modes and list description position (#18404)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18396" target="_blank" rel="noopener noreferrer">added support for reedline's verb-based edit commands in keybindings (Reedlines #1100) (#18396)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18403" target="_blank" rel="noopener noreferrer">deleted deprecated stdlib copy and paste (#18403)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18392" target="_blank" rel="noopener noreferrer">also used experimental_options env variable when loading config (#18392)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18389" target="_blank" rel="noopener noreferrer">refactored exit logic (#18389)</a></li>
</ul>
</li>
<li>
<p>@madjar:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18387" target="_blank" rel="noopener noreferrer">used the response body for the error message (#18387)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18386" target="_blank" rel="noopener noreferrer">fixed leading pipe character in a pipeline (#18386)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18421" target="_blank" rel="noopener noreferrer">bumped bytesize from 2.3.1 to 2.4.0 (#18421)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18420" target="_blank" rel="noopener noreferrer">bumped itertools from 0.14.0 to 0.15.0 (#18420)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18380" target="_blank" rel="noopener noreferrer">bumped sysinfo from 0.38.4 to 0.39.3 (#18380)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-06-19, including PRs merged Friday, 2026-06-12 through Thursday, 2026-06-18.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18434" target="_blank" rel="noopener noreferrer">serialized <code>CellPath</code> via string representation (#18434)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18422" target="_blank" rel="noopener noreferrer">refactored the parser to consolidate spread operator checking logic (#18422)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18393" target="_blank" rel="noopener noreferrer">refactored type checking code (#18393)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18314" target="_blank" rel="noopener noreferrer">added non UTF-8 text support for <code>url encode</code>/<code>url decode</code> (#18314)</a></li>
</ul>
</li>
<li>
<p>@leeewee:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18418" target="_blank" rel="noopener noreferrer">fixed <code>str index-of --grapheme-clusters</code> panic on a sub-grapheme needle (#18418)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18414" target="_blank" rel="noopener noreferrer">allowed ctrl+c to work better on <code>from json</code> (#18414)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18410" target="_blank" rel="noopener noreferrer">added new <code>random pass</code> command (#18410)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18408" target="_blank" rel="noopener noreferrer">fixed a bug in the end-of-options functionality (#18408)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18397" target="_blank" rel="noopener noreferrer">reverted &quot;pin ratatui-widgets to 0.3.0 to prevent need for --locked&quot; (#18397)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18395" target="_blank" rel="noopener noreferrer">pinned ratatui-widgets to 0.3.0 to prevent need for --locked (#18395)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18413" target="_blank" rel="noopener noreferrer">saved ~100 tokens in evaluate_tool.md instructions (#18413)</a></li>
</ul>
</li>
<li>
<p>@WindSoilder:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18407" target="_blank" rel="noopener noreferrer">fixed flatten not renaming for later parent conflicting columns (#18407)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18404" target="_blank" rel="noopener noreferrer">added support for reedline menu input/output modes and list description position (#18404)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18396" target="_blank" rel="noopener noreferrer">added support for reedline's verb-based edit commands in keybindings (Reedlines #1100) (#18396)</a></li>
</ul>
</li>
<li>
<p>@Tyarel8:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18403" target="_blank" rel="noopener noreferrer">deleted deprecated stdlib copy and paste (#18403)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18392" target="_blank" rel="noopener noreferrer">also used experimental_options env variable when loading config (#18392)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18389" target="_blank" rel="noopener noreferrer">refactored exit logic (#18389)</a></li>
</ul>
</li>
<li>
<p>@madjar:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18387" target="_blank" rel="noopener noreferrer">used the response body for the error message (#18387)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18386" target="_blank" rel="noopener noreferrer">fixed leading pipe character in a pipeline (#18386)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18421" target="_blank" rel="noopener noreferrer">bumped bytesize from 2.3.1 to 2.4.0 (#18421)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18420" target="_blank" rel="noopener noreferrer">bumped itertools from 0.14.0 to 0.15.0 (#18420)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18380" target="_blank" rel="noopener noreferrer">bumped sysinfo from 0.38.4 to 0.39.3 (#18380)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@casedami:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2182" target="_blank" rel="noopener noreferrer">added abbreviations section to reedline (#2182)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2181" target="_blank" rel="noopener noreferrer">TWiN 355 (#2181)</a></li>
</ul>
</li>
<li>
<p>@ethan-hawksley:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2180" target="_blank" rel="noopener noreferrer">fixed a handful of grammar errors and typos (#2180)</a></li>
</ul>
</li>
</ul>
<h2>Awesome Nu</h2>
<ul>
<li>@lassoColombo:
<ul>
<li><a href="https://github.com/nushell/awesome-nu/pull/166" target="_blank" rel="noopener noreferrer">added nu-http-client-generator and nu-http-client-collection (#166)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1105" target="_blank" rel="noopener noreferrer">fixed tmux history dedup (#1105)</a></li>
</ul>
</li>
<li>
<p>@stormasm:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1104" target="_blank" rel="noopener noreferrer">removed old JT links that are no longer live or available (#1104)</a></li>
</ul>
</li>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1103" target="_blank" rel="noopener noreferrer">fixed vi mode to complete pending key sequence before custom keybindings (#1103)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1102" target="_blank" rel="noopener noreferrer">fixed vi mode to stop dot-repeat recording itself (#1102)</a></li>
</ul>
</li>
<li>
<p>@philocalyst:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1093" target="_blank" rel="noopener noreferrer">added non-blocking completions in reedline (#1093)</a></li>
</ul>
</li>
<li>
<p>@ymcx:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1078" target="_blank" rel="noopener noreferrer">restored &quot;Fix move to line start in multi-line history entries&quot; (#1078)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>@VioletsOleander:
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1259" target="_blank" rel="noopener noreferrer">fixed support for git add completion for file name that contains whitespace (#1259)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-06-19T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #355</title>
    <id>https://www.nushell.sh/blog/2026-06-12-twin0355.html</id>
    <link href="https://www.nushell.sh/blog/2026-06-12-twin0355.html"/>
    <updated>2026-06-12T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Saturday, 2026-06-13, including PRs merged Friday, 2026-06-05 through Thursday, 2026-06-11.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18394" target="_blank" rel="noopener noreferrer">allowed polars selectors as input for all commands that accept expressions as input (#18394)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18383" target="_blank" rel="noopener noreferrer">introduced Polars bitwise commands (#18383)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18349" target="_blank" rel="noopener noreferrer">fixed overshadowing breaking aliases (#18349)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18345" target="_blank" rel="noopener noreferrer">upgraded Polars to 0.54 (#18345)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18391" target="_blank" rel="noopener noreferrer">fixed a problem with glob and rm (#18391)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18388" target="_blank" rel="noopener noreferrer">refactored parser from one big file to smaller files (#18388)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18378" target="_blank" rel="noopener noreferrer">fixed dc-glob issue with using relative paths vs absolute (#18378)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18376" target="_blank" rel="noopener noreferrer">added case-insensitivity to dc-glob and glob command to avoid breaking changes (#18376)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18375" target="_blank" rel="noopener noreferrer">fixed a bug with dc-glob and <code>/some/path/wildcard*</code> (#18375)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18373" target="_blank" rel="noopener noreferrer">allowed dc-glob to expand tilde (#18373)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18372" target="_blank" rel="noopener noreferrer">updated custom command <code>--wrapped</code> to not always convert to glob (#18372)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18368" target="_blank" rel="noopener noreferrer">allowed <code>--context</code> to be one of int or range (#18368)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18367" target="_blank" rel="noopener noreferrer">patched windows globbing in the wrong place (#18367)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18366" target="_blank" rel="noopener noreferrer">added context for the <code>idx search</code> command (#18366)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18357" target="_blank" rel="noopener noreferrer">fixed input/output and example for <code>plugin list</code> (#18357)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18350" target="_blank" rel="noopener noreferrer">added category, search-terms, examples to toolkit.nu (#18350)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18348" target="_blank" rel="noopener noreferrer">handled float ranges better (#18348)</a></li>
</ul>
</li>
<li>
<p>@casedami:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18390" target="_blank" rel="noopener noreferrer">fixed: use new highlighter api for better abbr expansion (#18390)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18377" target="_blank" rel="noopener noreferrer">made <code>Debug</code> for <code>Value</code> more compact by default (#18377)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18371" target="_blank" rel="noopener noreferrer">exposed <code>NuTester</code> internals (#18371)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18361" target="_blank" rel="noopener noreferrer">made <code>nu-test-support</code> compile without <code>os</code> feature (#18361)</a></li>
</ul>
</li>
<li>
<p>@Ashif-107:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18364" target="_blank" rel="noopener noreferrer">deprecated <code>str upcase</code>/<code>str downcase</code> and added <code>str uppercase</code>/<code>str lowercase</code> (#18364)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18363" target="_blank" rel="noopener noreferrer">fixed(parser): a regression of parse_unit_value where <code>[.foons]</code> not return early (#18363)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18355" target="_blank" rel="noopener noreferrer">fixed stor return type (#18355)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18343" target="_blank" rel="noopener noreferrer">fixed(use): module descriptions should be properly formatted (#18343)</a></li>
</ul>
</li>
<li>
<p>@zelshahawy:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18354" target="_blank" rel="noopener noreferrer">fixed typos in developer docs (#18354)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18382" target="_blank" rel="noopener noreferrer">bumped kdl from 6.5.0 to 6.7.1 (#18382)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18381" target="_blank" rel="noopener noreferrer">bumped mq-markdown from 0.5.26 to 0.6.0 (#18381)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18379" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.47.1 to 1.47.2 (#18379)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18336" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.46.3 to 1.47.1 (#18336)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Saturday, 2026-06-13, including PRs merged Friday, 2026-06-05 through Thursday, 2026-06-11.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18394" target="_blank" rel="noopener noreferrer">allowed polars selectors as input for all commands that accept expressions as input (#18394)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18383" target="_blank" rel="noopener noreferrer">introduced Polars bitwise commands (#18383)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18349" target="_blank" rel="noopener noreferrer">fixed overshadowing breaking aliases (#18349)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18345" target="_blank" rel="noopener noreferrer">upgraded Polars to 0.54 (#18345)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18391" target="_blank" rel="noopener noreferrer">fixed a problem with glob and rm (#18391)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18388" target="_blank" rel="noopener noreferrer">refactored parser from one big file to smaller files (#18388)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18378" target="_blank" rel="noopener noreferrer">fixed dc-glob issue with using relative paths vs absolute (#18378)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18376" target="_blank" rel="noopener noreferrer">added case-insensitivity to dc-glob and glob command to avoid breaking changes (#18376)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18375" target="_blank" rel="noopener noreferrer">fixed a bug with dc-glob and <code>/some/path/wildcard*</code> (#18375)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18373" target="_blank" rel="noopener noreferrer">allowed dc-glob to expand tilde (#18373)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18372" target="_blank" rel="noopener noreferrer">updated custom command <code>--wrapped</code> to not always convert to glob (#18372)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18368" target="_blank" rel="noopener noreferrer">allowed <code>--context</code> to be one of int or range (#18368)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18367" target="_blank" rel="noopener noreferrer">patched windows globbing in the wrong place (#18367)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18366" target="_blank" rel="noopener noreferrer">added context for the <code>idx search</code> command (#18366)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18357" target="_blank" rel="noopener noreferrer">fixed input/output and example for <code>plugin list</code> (#18357)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18350" target="_blank" rel="noopener noreferrer">added category, search-terms, examples to toolkit.nu (#18350)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18348" target="_blank" rel="noopener noreferrer">handled float ranges better (#18348)</a></li>
</ul>
</li>
<li>
<p>@casedami:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18390" target="_blank" rel="noopener noreferrer">fixed: use new highlighter api for better abbr expansion (#18390)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18377" target="_blank" rel="noopener noreferrer">made <code>Debug</code> for <code>Value</code> more compact by default (#18377)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18371" target="_blank" rel="noopener noreferrer">exposed <code>NuTester</code> internals (#18371)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18361" target="_blank" rel="noopener noreferrer">made <code>nu-test-support</code> compile without <code>os</code> feature (#18361)</a></li>
</ul>
</li>
<li>
<p>@Ashif-107:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18364" target="_blank" rel="noopener noreferrer">deprecated <code>str upcase</code>/<code>str downcase</code> and added <code>str uppercase</code>/<code>str lowercase</code> (#18364)</a></li>
</ul>
</li>
<li>
<p>@blindFS:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18363" target="_blank" rel="noopener noreferrer">fixed(parser): a regression of parse_unit_value where <code>[.foons]</code> not return early (#18363)</a></li>
</ul>
</li>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18355" target="_blank" rel="noopener noreferrer">fixed stor return type (#18355)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18343" target="_blank" rel="noopener noreferrer">fixed(use): module descriptions should be properly formatted (#18343)</a></li>
</ul>
</li>
<li>
<p>@zelshahawy:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18354" target="_blank" rel="noopener noreferrer">fixed typos in developer docs (#18354)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18382" target="_blank" rel="noopener noreferrer">bumped kdl from 6.5.0 to 6.7.1 (#18382)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18381" target="_blank" rel="noopener noreferrer">bumped mq-markdown from 0.5.26 to 0.6.0 (#18381)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18379" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.47.1 to 1.47.2 (#18379)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18336" target="_blank" rel="noopener noreferrer">bumped crate-ci/typos from 1.46.3 to 1.47.1 (#18336)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1101" target="_blank" rel="noopener noreferrer">fixed(editor): made horizontal grapheme motion line-aware via rest policy (#1101)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1100" target="_blank" rel="noopener noreferrer">refactored(editor): unified motions on a verb + target vocabulary (#1100)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1098" target="_blank" rel="noopener noreferrer">tests(painter): added wrapper enum to allow tests to write to sink (#1098)</a></li>
</ul>
</li>
<li>
<p>@Alb-O:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1097" target="_blank" rel="noopener noreferrer">fixed(painting): preserved leading CRLF in no-color rendering (#1097)</a></li>
</ul>
</li>
<li>
<p>@casedami:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1094" target="_blank" rel="noopener noreferrer">refactored: abbreviation expansion trait logic (#1094)</a></li>
</ul>
</li>
<li>
<p>@reubeno:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1090" target="_blank" rel="noopener noreferrer">perf: minimized cursor::position queries (#1090)</a></li>
</ul>
</li>
<li>
<p>@a-rookie-of-C-language:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1044" target="_blank" rel="noopener noreferrer">feat(list_menu): added DescriptionPosition to control description place… (#1044)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@guluo2016:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2179" target="_blank" rel="noopener noreferrer">updated plugin list docs: replaced is_running with status field (#2179)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2178" target="_blank" rel="noopener noreferrer">TWiN 354 (#2178)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-06-12T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">This week in Nushell #354</title>
    <id>https://www.nushell.sh/blog/2026-06-05-twin0354.html</id>
    <link href="https://www.nushell.sh/blog/2026-06-05-twin0354.html"/>
    <updated>2026-06-05T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Published Friday, 2026-06-05, including PRs merged Friday, 2026-05-29 through Thursday, 2026-06-04.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18344" target="_blank" rel="noopener noreferrer">fixed(table): alignments of <code>expand</code> and <code>header_on_separator</code> (#18344)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18342" target="_blank" rel="noopener noreferrer">feat(ansi gradient): added completions for named gradients (#18342)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18313" target="_blank" rel="noopener noreferrer">refactored: <code>get_locale_from_env_vars</code> in <code>nu-utils</code> (#18313)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18308" target="_blank" rel="noopener noreferrer">consolidated column handling: record &amp; table; SyntaxShape &amp; Type (#18308)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18303" target="_blank" rel="noopener noreferrer">made submodules no longer implicitly imported (#18303)</a></li>
</ul>
</li>
<li>
<p>@puneetdixit200:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18340" target="_blank" rel="noopener noreferrer">fixed ANSI-aware truncation in <code>input list</code> (#18310) (#18340)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18339" target="_blank" rel="noopener noreferrer">added <code>--full-reparse/-f</code> to <code>run</code> command (#18339)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18335" target="_blank" rel="noopener noreferrer">chore: updated Rust version to 1.94.1 in Cargo.toml and rust-toolchain.toml (#18335)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18327" target="_blank" rel="noopener noreferrer">prevented <code>--output</code> from being used in <code>config_mode</code> in <code>explore config</code> command (#18327)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18322" target="_blank" rel="noopener noreferrer">bumped <code>uu_*</code> deps to 0.9.0 (#18322)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18306" target="_blank" rel="noopener noreferrer">updated <code>ignore</code> to really ignore 😃 (#18306)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18301" target="_blank" rel="noopener noreferrer">updated REPL loop to synchronize cursor position and buffer contents (#18301)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18299" target="_blank" rel="noopener noreferrer">implemented POSIX Guideline 10 <code>--</code> end-of-options delimiter (#18299)</a></li>
</ul>
</li>
<li>
<p>@LeonidasZhak:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18338" target="_blank" rel="noopener noreferrer">docs: added binary data examples to hash md5/sha256 (#18338)</a></li>
</ul>
</li>
<li>
<p>@dmtrKovalenko:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18332" target="_blank" rel="noopener noreferrer">chore: upgraded to fff 0.9 and reenabled watcher (#18332)</a></li>
</ul>
</li>
<li>
<p>@Mrfiregem:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18331" target="_blank" rel="noopener noreferrer">fixed simple Clippy error (#18331)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18295" target="_blank" rel="noopener noreferrer">fix(completions): subcommand completions are now wrapped in quotes for <code>which</code> (#18295)</a></li>
</ul>
</li>
<li>
<p>@ian-h-chamberlain:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18330" target="_blank" rel="noopener noreferrer">fixed nix flake build (rust toolchain + workspace package version) (#18330)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18325" target="_blank" rel="noopener noreferrer">nu_style: supported fixed color lookups (#18325)</a></li>
</ul>
</li>
<li>
<p>@zhiburt:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18320" target="_blank" rel="noopener noreferrer">bumped tabled to 0.21 (#18320)</a></li>
</ul>
</li>
<li>
<p>@stormasm:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18317" target="_blank" rel="noopener noreferrer">removed warning on PipelineMetadata (#18317)</a></li>
</ul>
</li>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18312" target="_blank" rel="noopener noreferrer">introduced polars map-batches (#18312)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18311" target="_blank" rel="noopener noreferrer">fixed packaging (#18311)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18307" target="_blank" rel="noopener noreferrer">bumped to 0.113.1 (#18307)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18274" target="_blank" rel="noopener noreferrer">bumped to dev version (#18274)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18304" target="_blank" rel="noopener noreferrer">chore: fixed nightly release workflow &amp; upgraded Nu for workflows (#18304)</a></li>
</ul>
</li>
<li>
<p>@sholderbach:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18285" target="_blank" rel="noopener noreferrer">chore: omitted some unnecessary allocations from the parser (#18285)</a></li>
</ul>
</li>
<li>
<p>@guluo2016:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18282" target="_blank" rel="noopener noreferrer">fixed inaccurate error message when using negative index in cell path (#18282)</a></li>
</ul>
</li>
<li>
<p>@cho-minsung:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18275" target="_blank" rel="noopener noreferrer">fix(math abs): returned overflow error instead of panicking on i64::MIN (#18275)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18294" target="_blank" rel="noopener noreferrer">build(deps): bumped crate-ci/typos from 1.46.2 to 1.46.3 (#18294)</a></li>
</ul>
</li>
</ul>]]></summary>
    <content type="html"><![CDATA[
<p>Published Friday, 2026-06-05, including PRs merged Friday, 2026-05-29 through Thursday, 2026-06-04.</p>
<h2>Nushell</h2>
<ul>
<li>
<p>@Bahex:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18344" target="_blank" rel="noopener noreferrer">fixed(table): alignments of <code>expand</code> and <code>header_on_separator</code> (#18344)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18342" target="_blank" rel="noopener noreferrer">feat(ansi gradient): added completions for named gradients (#18342)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18313" target="_blank" rel="noopener noreferrer">refactored: <code>get_locale_from_env_vars</code> in <code>nu-utils</code> (#18313)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18308" target="_blank" rel="noopener noreferrer">consolidated column handling: record &amp; table; SyntaxShape &amp; Type (#18308)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18303" target="_blank" rel="noopener noreferrer">made submodules no longer implicitly imported (#18303)</a></li>
</ul>
</li>
<li>
<p>@puneetdixit200:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18340" target="_blank" rel="noopener noreferrer">fixed ANSI-aware truncation in <code>input list</code> (#18310) (#18340)</a></li>
</ul>
</li>
<li>
<p>@fdncred:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18339" target="_blank" rel="noopener noreferrer">added <code>--full-reparse/-f</code> to <code>run</code> command (#18339)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18335" target="_blank" rel="noopener noreferrer">chore: updated Rust version to 1.94.1 in Cargo.toml and rust-toolchain.toml (#18335)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18327" target="_blank" rel="noopener noreferrer">prevented <code>--output</code> from being used in <code>config_mode</code> in <code>explore config</code> command (#18327)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18322" target="_blank" rel="noopener noreferrer">bumped <code>uu_*</code> deps to 0.9.0 (#18322)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18306" target="_blank" rel="noopener noreferrer">updated <code>ignore</code> to really ignore 😃 (#18306)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18301" target="_blank" rel="noopener noreferrer">updated REPL loop to synchronize cursor position and buffer contents (#18301)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18299" target="_blank" rel="noopener noreferrer">implemented POSIX Guideline 10 <code>--</code> end-of-options delimiter (#18299)</a></li>
</ul>
</li>
<li>
<p>@LeonidasZhak:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18338" target="_blank" rel="noopener noreferrer">docs: added binary data examples to hash md5/sha256 (#18338)</a></li>
</ul>
</li>
<li>
<p>@dmtrKovalenko:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18332" target="_blank" rel="noopener noreferrer">chore: upgraded to fff 0.9 and reenabled watcher (#18332)</a></li>
</ul>
</li>
<li>
<p>@Mrfiregem:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18331" target="_blank" rel="noopener noreferrer">fixed simple Clippy error (#18331)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18295" target="_blank" rel="noopener noreferrer">fix(completions): subcommand completions are now wrapped in quotes for <code>which</code> (#18295)</a></li>
</ul>
</li>
<li>
<p>@ian-h-chamberlain:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18330" target="_blank" rel="noopener noreferrer">fixed nix flake build (rust toolchain + workspace package version) (#18330)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18325" target="_blank" rel="noopener noreferrer">nu_style: supported fixed color lookups (#18325)</a></li>
</ul>
</li>
<li>
<p>@zhiburt:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18320" target="_blank" rel="noopener noreferrer">bumped tabled to 0.21 (#18320)</a></li>
</ul>
</li>
<li>
<p>@stormasm:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18317" target="_blank" rel="noopener noreferrer">removed warning on PipelineMetadata (#18317)</a></li>
</ul>
</li>
<li>
<p>@ayax79:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18312" target="_blank" rel="noopener noreferrer">introduced polars map-batches (#18312)</a></li>
</ul>
</li>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18311" target="_blank" rel="noopener noreferrer">fixed packaging (#18311)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18307" target="_blank" rel="noopener noreferrer">bumped to 0.113.1 (#18307)</a></li>
<li><a href="https://github.com/nushell/nushell/pull/18274" target="_blank" rel="noopener noreferrer">bumped to dev version (#18274)</a></li>
</ul>
</li>
<li>
<p>@hustcer:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18304" target="_blank" rel="noopener noreferrer">chore: fixed nightly release workflow &amp; upgraded Nu for workflows (#18304)</a></li>
</ul>
</li>
<li>
<p>@sholderbach:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18285" target="_blank" rel="noopener noreferrer">chore: omitted some unnecessary allocations from the parser (#18285)</a></li>
</ul>
</li>
<li>
<p>@guluo2016:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18282" target="_blank" rel="noopener noreferrer">fixed inaccurate error message when using negative index in cell path (#18282)</a></li>
</ul>
</li>
<li>
<p>@cho-minsung:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18275" target="_blank" rel="noopener noreferrer">fix(math abs): returned overflow error instead of panicking on i64::MIN (#18275)</a></li>
</ul>
</li>
<li>
<p>@app/dependabot:</p>
<ul>
<li><a href="https://github.com/nushell/nushell/pull/18294" target="_blank" rel="noopener noreferrer">build(deps): bumped crate-ci/typos from 1.46.2 to 1.46.3 (#18294)</a></li>
</ul>
</li>
</ul>
<h2>reedline</h2>
<ul>
<li>
<p>@kronberger-droid:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/1092" target="_blank" rel="noopener noreferrer">refactor(completer)!: no longer require Send on the Completer trait (#1092)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1091" target="_blank" rel="noopener noreferrer">test(vi): expanded parse_event coverage as refactor safety net (#1091)</a></li>
<li><a href="https://github.com/nushell/reedline/pull/1071" target="_blank" rel="noopener noreferrer">added <code>InputMode</code> / <code>OutputMode</code> enums for menu settings (#1071)</a></li>
</ul>
</li>
<li>
<p>@skull-squadron:</p>
<ul>
<li><a href="https://github.com/nushell/reedline/pull/929" target="_blank" rel="noopener noreferrer">fixed default prompt path (#929)</a></li>
</ul>
</li>
</ul>
<h2>Nu_Scripts</h2>
<ul>
<li>
<p>@kaascevich:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1258" target="_blank" rel="noopener noreferrer">added swift-bundler completion script (#1258)</a></li>
</ul>
</li>
<li>
<p>@Hentioe:</p>
<ul>
<li><a href="https://github.com/nushell/nu_scripts/pull/1257" target="_blank" rel="noopener noreferrer">git-completions: added more short options (#1257)</a></li>
</ul>
</li>
</ul>
<h2>Documentation</h2>
<ul>
<li>
<p>@cptpiepmatz:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2177" target="_blank" rel="noopener noreferrer">release notes for <code>v0.113.1</code> (#2177)</a></li>
</ul>
</li>
<li>
<p>@NotTheDr01ds:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2176" target="_blank" rel="noopener noreferrer">TWiN 353 (#2176)</a></li>
</ul>
</li>
<li>
<p>@samoylovfp:</p>
<ul>
<li><a href="https://github.com/nushell/nushell.github.io/pull/2167" target="_blank" rel="noopener noreferrer">documented the percent sigil (#2167)</a></li>
</ul>
</li>
</ul>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-06-05T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
  <entry>
    <title type="text">Nushell 0.113.1</title>
    <id>https://www.nushell.sh/blog/2026-05-30-nushell_v0_113_1.html</id>
    <link href="https://www.nushell.sh/blog/2026-05-30-nushell_v0_113_1.html"/>
    <updated>2026-05-30T00:00:00.000Z</updated>
    <summary type="html"><![CDATA[
<p>Today, we're releasing version 0.113.1 of Nu. This patch release fixes issues introduced in 0.113.0, including YAML string quoting behavior, reliability problems across the <code>idx</code> command family, and a REPL regression in <code>commandline edit</code>.</p>
<h1>Where to get it</h1>
<p>Nu 0.113.1 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.113.1" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>]]></summary>
    <content type="html"><![CDATA[
<p>Today, we're releasing version 0.113.1 of Nu. This patch release fixes issues introduced in 0.113.0, including YAML string quoting behavior, reliability problems across the <code>idx</code> command family, and a REPL regression in <code>commandline edit</code>.</p>
<h1>Where to get it</h1>
<p>Nu 0.113.1 is available as <a href="https://github.com/nushell/nushell/releases/tag/0.113.1" target="_blank" rel="noopener noreferrer">pre-built binaries</a> or from <a href="https://crates.io/crates/nu" target="_blank" rel="noopener noreferrer">crates.io</a>. If you have Rust installed you can install it using <code>cargo install nu</code>.</p>
<p>As part of this release, we also publish a set of optional <a href="https://www.nushell.sh/book/plugins.html" target="_blank" rel="noopener noreferrer">plugins</a> you can install and use with Nushell.</p>

<h1>Changes </h1>
<h2>Other changes </h2>
<h3>More idiomatic YAML output with smarter string quoting  </h3>
<p>The previous emitter always quoted string values, which produced valid YAML but was more conservative than necessary and less aligned with YAML 1.2 plain-scalar rules.</p>
<p>This change makes output:</p>
<ul>
<li>more readable</li>
<li>closer to idiomatic YAML</li>
<li>more spec-aligned for plain scalars</li>
<li>still safe for roundtripping by quoting values that would otherwise be reinterpreted as non-strings</li>
</ul>
<div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Before">
    <span>Before</span>
  </div>
  <div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'off'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">path</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'/dev/stdout'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">listen</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'0.0.0.0:8444,0.0.0.0:8445 ssl'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'kong'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">kind</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'Deployment'</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="After">
    <span>After</span>
  </div>
  <div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">value</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">'off'</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">path</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">/dev/stdout</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">listen</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">0.0.0.0:8444,0.0.0.0:8445 ssl</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">name</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">kong</span></span>
<span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">kind</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">Deployment</span></span></code></pre>
</div>
</div><div class="code-block-with-title">
  <div class="code-block-title-bar" data-title="Multiline strings now emit as">
    <span>Multiline strings now emit as</span>
  </div>
  <div class="language-yaml" data-highlighter="shiki" data-ext="yaml" style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#abb2bf;--shiki-light-bg:#1E1E1E;--shiki-dark-bg:#1E1E1E;--shiki-onedarkpro-bg:#282c34"><pre class="shiki shiki-themes dark-plus dark-plus one-dark-pro vp-code"><code class="language-yaml"><span class="line"><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#E06C75">string</span><span style="--shiki-light:#D4D4D4;--shiki-dark:#D4D4D4;--shiki-onedarkpro:#ABB2BF">: </span><span style="--shiki-light:#C586C0;--shiki-dark:#C586C0;--shiki-onedarkpro:#C678DD">|</span><span style="--shiki-light:#569CD6;--shiki-dark:#569CD6;--shiki-onedarkpro:#C678DD">-</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  Hello</span></span>
<span class="line"><span style="--shiki-light:#CE9178;--shiki-dark:#CE9178;--shiki-onedarkpro:#98C379">  world</span></span></code></pre>
</div>
</div><h2>Bug fixes </h2>
<h3><code>idx</code> dependency update and command reliability improvements  </h3>
<p>Update the <code>idx</code> fff-search dependency and fix bugs.</p>
<ul>
<li><code>idx init . --wait</code> now properly blocks</li>
<li><code>idx init</code> now has a <code>--follow-links</code> switch</li>
<li><code>idx status</code> reports accurate counts after indexing</li>
<li><code>idx import</code> fully restores snapshot for queries — The <code>idx import</code> command now properly restores snapshots to enable all query operations. Imported snapshots remain queryable even if the original project files have been deleted or moved.</li>
<li><code>idx files</code> works on imported snapshots</li>
<li><code>idx files</code> has a <code>query</code> parameter now for easy searching (renamed from <code>path</code> for consistency)</li>
<li><code>idx dirs</code> works on imported snapshots</li>
<li><code>idx dirs</code> has a <code>query</code> parameter now for easy searching</li>
<li><code>idx find</code> (fuzzy search) works on imported snapshots</li>
<li><code>idx search</code> (content search) works on imported snapshots</li>
<li>changed output to nushell values for commands that return tables</li>
<li>updated some help strings to be more helpful</li>
</ul>
<p>Files are ignored during indexing due to the use of the <code>ignore</code> crate. <a href="https://docs.rs/ignore/latest/ignore/struct.WalkBuilder.html#ignore-rules" target="_blank" rel="noopener noreferrer">These are the rules for ignore</a>. There's no way to override this in the current version.</p>
<h3>Other fixes </h3>
<ul>
<li>Fixed a regression where <code>commandline edit</code> did not update the commandline in REPL on 0.113.0. <code>commandline edit</code> now correctly updates the visible prompt buffer again. (<a href="https://github.com/nushell/nushell/pull/18301" target="_blank" rel="noopener noreferrer">#18301</a>)</li>
</ul>
<h1>Hall of fame </h1>
<p>Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! 🙏</p>
<p>| author                                 | change                                                         | link                                                    |
|</p>
]]></content>
    <author>
      <name>The Nu Authors</name>
    </author>
    <contributor>
      <name>The Nu Authors</name>
    </contributor>
    <published>2026-05-30T00:00:00.000Z</published>
    <rights>Copyright by The Nu Authors</rights>
  </entry>
</feed>