# Nushell 0.109.0 Update Summary

**Updated**: 2025-11-30
**From**: 0.108.0
**To**: 0.109.0

## Update Status: ✅ COMPLETE

All 13 plugins have been successfully updated to Nushell 0.109.0.

## What Changed

### Nushell Core Upgrade
- **Nushell Version**: 0.108.0 → 0.109.0
- **Build Date**: 2025-11-30
- **All Plugins**: Updated `nu-plugin` dependency to 0.109.0

### Automatic Updates (Smart Version Management)

The update process now intelligently handles plugin versioning:

#### Dependencies Updated (All Plugins)
All 13 plugins have their `nu-plugin` dependency updated to 0.109.0:
- nu_plugin_auth
- nu_plugin_clipboard
- nu_plugin_desktop_notifications
- nu_plugin_fluent
- nu_plugin_hashes
- nu_plugin_highlight
- nu_plugin_image
- nu_plugin_kcl
- nu_plugin_kms
- nu_plugin_orchestrator
- nu_plugin_port_extension
- nu_plugin_qr_maker
- nu_plugin_tera

#### Package Versions (Selective Update)

**Updated** (had 0.108.0 package version):
- `nu_plugin_clipboard`: 0.108.0 → 0.109.0

**Preserved** (have independent versions):
- `nu_plugin_auth`: 0.1.0 (unchanged)
- `nu_plugin_desktop_notifications`: 1.2.12 (unchanged)
- `nu_plugin_fluent`: 0.1.0 (unchanged)
- `nu_plugin_hashes`: 0.1.8 (unchanged)
- `nu_plugin_highlight`: 1.4.7+0.105.2 (unchanged)
- `nu_plugin_image`: 0.105.1 (unchanged)
- `nu_plugin_kcl`: 0.1.0 (unchanged)
- `nu_plugin_kms`: 0.1.0 (unchanged)
- `nu_plugin_orchestrator`: 0.1.0 (unchanged)
- `nu_plugin_port_extension`: 0.109.0 (unchanged)
- `nu_plugin_qr_maker`: 1.1.0 (unchanged)
- `nu_plugin_tera`: 0.1.0 (unchanged)

## Key Features of This Update

### 1. Smart Version Detection
The `update_all_plugins.nu` script now intelligently:
- **Always updates** the `nu-plugin` dependency for all plugins (0.108.0 → 0.109.0)
- **Selectively updates** package versions only if they match the previous Nushell version (0.108.0)
- **Preserves** plugin-specific versioning schemes (e.g., 0.1.0, 1.1.0, 1.2.12)

### 2. Correct String Interpolation
- Fixed Nushell string interpolation per Rule 18 guidelines
- Properly escaped literal parentheses in `$"..."` strings: `\(DRY RUN\)`

### 3. Template Generation Fix
- Scripts now correctly generate `register-plugins.nu` instead of `install.nu`
- Updated all template generation scripts:
  - `scripts/collect_full_binaries.nu`
  - `scripts/complete_update.nu`
  - `scripts/create_full_distribution.nu`

### 4. Bootstrap Installer Enhancement
- `install.sh` now auto-detects local binaries in distribution packages
- Supports both `./bin/nu` and `./nu` paths
- Automatically uses local binaries when available

## Automation Scripts Modified

### scripts/update_all_plugins.nu
- **Lines 72**: Fixed string interpolation `\(DRY RUN\)`
- **Lines 187-215**: Added smart version detection logic
  - Calculates previous version (0.108.0 from 0.109.0)
  - Only updates package version if current version matches previous version
  - Preserves independent plugin versions

### scripts/collect_full_binaries.nu
- **Line 722-724**: Changed template generation to use `register-plugins.nu` instead of `install.nu`

### scripts/complete_update.nu
- **Line 414**: Updated documentation reference to `register-plugins.nu`

### scripts/create_full_distribution.nu
- **Line 461**: Updated next steps documentation to `register-plugins.nu`

### installers/bootstrap/install.sh
- **Lines 1059-1069**: Added auto-detection of local binaries
  - Checks for `./bin/nu` and `./nu` paths
  - Automatically uses local installation when found

## Distribution Changes

All distribution packages now include:
- ✅ Nushell 0.109.0 binary
- ✅ All 13 plugins compiled with 0.109.0
- ✅ `register-plugins.nu` script (not `install.nu`)
- ✅ `install.sh` with local binary auto-detection
- ✅ Proper plugin registration without installation of binaries

## Files Modified

### Core Documentation
- `CLAUDE.md`: Updated version to 0.109.0

### Automation Scripts
- `scripts/update_all_plugins.nu` - Smart version management
- `scripts/collect_full_binaries.nu` - Template generation fix
- `scripts/complete_update.nu` - Documentation update
- `scripts/create_full_distribution.nu` - Documentation update

### Plugin Cargo.toml Files
- `nu_plugin_clipboard/Cargo.toml` - Package version 0.108.0 → 0.109.0

### Bootstrap Installer
- `installers/bootstrap/install.sh` - Local binary auto-detection

## How to Use the Updated System

### Update to Next Version
```bash
# Complete update to new version
./scripts/complete_update.nu 0.110.0

# Or step by step
./scripts/update_nushell_version.nu 0.110.0
./scripts/update_all_plugins.nu 0.110.0
./scripts/create_full_distribution.nu
```

### Just Recipes
```bash
# Quick validation
just validate-nushell

# Full development workflow
just dev-flow

# Release workflow
just release-flow
```

## Verification

All 13 plugins successfully:
- ✅ Compile with Nushell 0.109.0
- ✅ Have correct `nu-plugin` dependency version
- ✅ Have correct `nu-protocol` dependency version
- ✅ Register properly with Nushell
- ✅ Can be listed with `nu -c 'plugin list'`

## Next Steps

For the next version update (0.110.0):
1. Run `just validate-nushell` to ensure version consistency
2. Execute `./scripts/complete_update.nu 0.110.0` for full automation
3. Run `just build-full` to compile everything
4. Run `just test` to validate all plugins
5. Create distribution with `just pack-full`

## Notes

- Plugin versions are now independently managed while maintaining dependency synchronization
- The smart version detection prevents version confusion between plugin versions and Nushell versions
- Auto-detection of local binaries makes distribution packages more portable
- `register-plugins.nu` correctly registers plugins without installing binaries (distinction from `install.sh`)
