diff --git a/.vuepress/client.js b/.vuepress/client.js
index dc176d2c86a..7cc423419ef 100755
--- a/.vuepress/client.js
+++ b/.vuepress/client.js
@@ -10,6 +10,7 @@ import BlogPosts from './components/BlogPosts.vue';
import ExperimentalOption from './components/ExperimentalOption.vue';
import JumpToc from './components/JumpToc.vue';
import PrBy from './components/PrBy.vue';
+import PrOther from './components/PrOther.vue';
import ReleaseToc from './components/ReleaseToc.vue';
import URLDocSearch from './components/URLDocSearch.vue';
@@ -20,6 +21,7 @@ export default defineClientConfig({
app.component('ExperimentalOption', ExperimentalOption);
app.component('JumpToc', JumpToc);
app.component('PrBy', PrBy);
+ app.component('PrOther', PrOther);
app.component('ReleaseToc', ReleaseToc);
// Override the builtin searchbox
diff --git a/.vuepress/components/PrOther.vue b/.vuepress/components/PrOther.vue
new file mode 100644
index 00000000000..78256db25a3
--- /dev/null
+++ b/.vuepress/components/PrOther.vue
@@ -0,0 +1,15 @@
+
+ (#{{ pr }})
+
+
+
diff --git a/blog/2026-07-11-nushell_v0_114_1.md b/blog/2026-07-11-nushell_v0_114_1.md
new file mode 100644
index 00000000000..ebab2ecf56e
--- /dev/null
+++ b/blog/2026-07-11-nushell_v0_114_1.md
@@ -0,0 +1,271 @@
+---
+title: Nushell 0.114.1
+author: The Nu Authors
+author_site: https://www.nushell.sh/blog
+author_image: https://www.nushell.sh/blog/images/nu_logo.png
+excerpt: Today, we're releasing version 0.114.1 of Nu. This patch release fixes issues found after `enforce-runtime-annotations` became opt-out in the last version, improving runtime type checks and error reporting.
+---
+
+
+
+
+
+# Nushell 0.114.1
+
+Today, we're releasing version 0.114.1 of Nu. This patch release fixes issues found after `enforce-runtime-annotations` became opt-out in the last version, improving runtime type checks and error reporting.
+
+# Where to get it
+
+Nu 0.114.1 is available as [pre-built binaries](https://github.com/nushell/nushell/releases/tag/0.114.1) or from [crates.io](https://crates.io/crates/nu). If you have Rust installed you can install it using `cargo install nu`.
+
+As part of this release, we also publish a set of optional [plugins](https://www.nushell.sh/book/plugins.html) you can install and use with Nushell.
+
+# Table of contents
+
+
+
+# Highlights and themes of this release
+
+
+
+
+## Follow-up fixes for runtime annotation checks
+
+In [Nushell 0.114.0](/blog/2026-07-04-nushell_v0_114_0.html), we promoted [`enforce-runtime-annotations`](https://github.com/nushell/nushell/issues/16832) 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.
+
+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 [issue #18528](https://github.com/nushell/nushell/issues/18528), and this patch release fixes a number of them, mostly thanks to [@Bahex](https://github.com/Bahex). Thank you!
+
+More issues may still turn up. Please report them if you run into anything suspicious. If `enforce-runtime-annotations` blocks your workflow, you can disable just that option before Nushell starts:
+
+```nushell
+NU_EXPERIMENTAL_OPTIONS=enforce-runtime-annotations=false nu
+```
+
+Or pass it as a command-line flag:
+
+```nushell
+nu --experimental-options enforce-runtime-annotations=false
+```
+
+See the [`nu-experimental` user documentation](https://docs.rs/nu-experimental/latest/nu_experimental/#for-users) for more details.
+
+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.
+
+# Changes
+
+## Bug fixes
+
+### More helpful errors for failed assignments with `enforce-runtime-annotations`
+
+With `enforce-runtime-annotations` enabled, assignments with incorrect types raise errors.
+
+Previously this error was `nu::shell::cant_convert` originally used for unsuccessful type coercions of command arguments. Unfortunately, this error only pointed at the assigned values _origin_ and not at the failed assignment.
+
+This error has been switched to `nu::shell::type_mismatch` and now points to the failed assignment in addition to the value's origin.
+
+##### Example 1
+
+
+
+| Code |
+
+
+```nushell :line-numbers
+mut execution_time = -1
+$execution_time = $env.CMD_DURATION_MS
+```
+
+ |
+
+
+
+| Before |
+
+
+```ansi :no-line-numbers
+Error: [31mnu::shell::cant_convert
+[39m
+ [31m×[39m Can't convert to int.
+ â•─[[1m[4m[36mHost Environment Variables:1:1[22m[24m[39m]
+ [2m1[22m │ "ALLUSERSPROFILE"="C:\\ProgramData"
+ · [1m[35m▲[22m[39m
+ · [1m[35m╰── can't convert string to int[22m[39m
+ [2m2[22m │ "ANDROID_AVD_HOME"="B:\\AndroidAVDs"
+ ╰────
+[0m
+```
+
+ |
+
+
+
+| After |
+
+
+```ansi :no-line-numbers
+Error: [31mnu::shell::type_mismatch
+[39m
+ [31m×[39m Type mismatch.
+ â•─[[1m[4m[36mrepl_entry #3:1:17[22m[24m[39m]
+ [2m1[22m │ $execution_time = $env.CMD_DURATION_MS
+ · [1m[35m ┬[22m[39m
+ · [1m[35m╰── expected int, got string[22m[39m
+ ╰────
+[0m
+```
+
+ |
+
+
+
+##### Example 2
+
+
+
+| Code |
+
+
+```nushell :line-numbers
+# delibarete type erasure
+# we need to bypass parse-time
+# type checking for this example
+let stuff: any = {
+ foo: "bar"
+}
+
+mut x = 1
+
+$x = $stuff.foo
+```
+
+ |
+
+
+
+| Before |
+
+
+```ansi :no-line-numbers
+Error: [31mnu::shell::cant_convert
+[39m
+ [31m×[39m Can't convert to int.
+ â•─[[1m[4m[36mrepl_entry #5:1:24[22m[24m[39m]
+ [2m1[22m │ let stuff: any = {foo: "bar"}
+ · [1m[35m ──┬──[22m[39m
+ · [1m[35m╰── can't convert string to int[22m[39m
+ ╰────
+[0m
+```
+
+ |
+
+
+
+| After |
+
+
+```ansi :no-line-numbers
+Error: [31mnu::shell::type_mismatch
+[39m
+ [31m×[39m Type mismatch.
+ â•─[[1m[4m[36mrepl_entry #5:1:24[22m[24m[39m]
+ [2m1[22m │ let stuff: any = {foo: "bar"}
+ · [1m[35m ──┬──[22m[39m
+ · [1m[35m╰── the value is a string[22m[39m
+ ╰────
+ â•─[[1m[4m[36mrepl_entry #7:1:4[22m[24m[39m]
+ [2m1[22m │ $x = $stuff.foo
+ · [1m[33m ┬[22m[39m
+ · [1m[33m╰── expected int, got string[22m[39m
+ ╰────
+[0m
+```
+
+ |
+
+
+
+### Closure's input type is not inherited from the surrounding scope
+
+With last release, pipeline input type and how it affects various expressions are being tracked in a lot more cases.
+
+In fact, at least one too many:
+
+```nushell
+def mk-add-suffix [suffix: string]: nothing -> closure {
+ {|| $in ++ $suffix }
+}
+```
+
+```ansi :no-line-numbers
+Error: [31mnu::parser::operator_unsupported_type
+[39m
+ [31m×[39m The '++' operator does not work on values of type 'nothing'.
+ â•─[[1m[4m[36mrepl_entry #8:2:5[22m[24m[39m]
+ [2m1[22m │ def mk-add-suffix [suffix: string]: nothing -> closure {
+ [2m2[22m │ {|| $in ++ $suffix }}
+ · [1m[35m ─┬─[33m ─┬[22m[39m
+ · [1m[35m│[22m[39m [1m[33m╰── does not support 'nothing'[22m[39m
+ · [1m[35m╰── nothing[22m[39m
+ ╰────[0m
+```
+
+This is now fixed, and closures' input type will be inferred as `any`, the way it was before `0.114.0`.
+
+### Add list input type to more date commands
+
+Allow more `date` commands to have a list as `input -> output`. These are the commands that were updated:
+
+- `date humanize`
+- `date from-human`
+- `date to-timezone`
+- `format date`
+- `into datetime`
+
+### Other fixes
+
+- Fixed `input listen`'s output type signature to match actual returned value. With the incorrect signature (and `enforce-runtime-annotations` on) `let x = input listen` would raise an error due to `$x`'s inferred type (based on `input listen`'s signature) not matching the value assigned to it.
+- Type checking treats `table` and `list` as compatible (provided the columns aren't disjoint), but that did not extend to `list>`. This has been fixed.
+- Runtime type checking of _non-stream_ pipeline data is now more accurate.
+- Fixed `uname`'s output type signature to match its actual output. Previously it was `table`, now it's `record<...>` and also includes its columns.
+- Fixed an issue where `run script.nu --some-flag` could bind the value to the wrong flag of the script's `main` when `main` declared multiple flags, causing shifted positional arguments or a value being accepted into a flag of the wrong type. Flags passed to `run` are now matched to `main` parameters by name. ([#18533](https://github.com/nushell/nushell/pull/18533))
+- Fixed an incorrect `idx search --help` example. ([#18550](https://github.com/nushell/nushell/pull/18550))
+- Type checking of lists are relaxed. ([#18555](https://github.com/nushell/nushell/pull/18555))
+- Fixed an issue in `for` loops where type of the looping variable was inferred incorrectly when iterating over a value/stream with a union type (`oneof`). This could manifest as a runtime type checking error with `enforce-runtime-annotations` enabled. ([#18551](https://github.com/nushell/nushell/pull/18551))
+
+# Hall of fame
+
+Thanks to all the contributors below for helping us solve issues, improve documentation, refactor code, and more! :pray:
+
+| author | change | link |
+| ---------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------- |
+| [@cptpiepmatz](https://github.com/cptpiepmatz) | `cargo update` crossbeam crates | [#18554](https://github.com/nushell/nushell/pull/18554) |
+| [@Juhan280](https://github.com/Juhan280) | Initialize `start_time` for MCP only in MCP mode to avoid cargo warning | [#18530](https://github.com/nushell/nushell/pull/18530) |
+
+# Full changelog
+
+| author | title | link |
+| ---------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------- |
+| [@Alb-O](https://github.com/Alb-O) | fix(idx): correct search context help example | [#18550](https://github.com/nushell/nushell/pull/18550) |
+| [@Alb-O](https://github.com/Alb-O) | fix(parser): infer for loop items from iterable unions | [#18551](https://github.com/nushell/nushell/pull/18551) |
+| [@Bahex](https://github.com/Bahex) | fix: assignment errors point to the assignment | [#18531](https://github.com/nushell/nushell/pull/18531) |
+| [@Bahex](https://github.com/Bahex) | fix: `input listen`'s output type | [#18535](https://github.com/nushell/nushell/pull/18535) |
+| [@Bahex](https://github.com/Bahex) | fix: closure's input type shouldn't be inherited from scope | [#18540](https://github.com/nushell/nushell/pull/18540) |
+| [@Bahex](https://github.com/Bahex) | fix: relax assignability of list types | [#18555](https://github.com/nushell/nushell/pull/18555) |
+| [@Bahex](https://github.com/Bahex) | fix type comparisons between `table` and `list<oneof>` | [#18560](https://github.com/nushell/nushell/pull/18560) |
+| [@Bahex](https://github.com/Bahex) | fix: `uname` signature, and add detailed column info | [#18568](https://github.com/nushell/nushell/pull/18568) |
+| [@Juhan280](https://github.com/Juhan280) | fix(mcp): initialize `start_time` for MCP only in MCP mode to avoid cargo warning | [#18530](https://github.com/nushell/nushell/pull/18530) |
+| [@cptpiepmatz](https://github.com/cptpiepmatz) | `cargo update` crossbeam crates | [#18554](https://github.com/nushell/nushell/pull/18554) |
+| [@fdncred](https://github.com/fdncred) | add list input type to more date commands | [#18536](https://github.com/nushell/nushell/pull/18536) |
+| [@hexbinoct](https://github.com/hexbinoct) | Fix `run` binding forwarded flags to the wrong parameter | [#18533](https://github.com/nushell/nushell/pull/18533) |