# Changelog ## [0.108.0] - 2025-10-19 (FINAL UPDATE) ### 🎯 Help System & Build Process Fixes (2025-10-19) #### Help System Improvements - **Added Version Update Module to Help System**: - Version-update module now discoverable via `just help modules` - Added to `just help` main output with key commands - Included in `just help-all` workflow - Full integration into help system navigation #### New Help Commands - **`just commands`**: New recipe showing all commands organized by group (alias for `just --list`) - Shows [version-update] group with all 30+ update recipes - Replaces need to manually run `just --list` #### Build Process Fixes - **Fixed Plugin Archive Creation Bug**: - Phase 3 "No plugins found" warning fixed - Root cause: `each` command returns null, breaking count logic - Solution: Separated plugin listing from copying with proper filtering - Filters out `.d` dependency files with `where type == "file"` - Now correctly reports "Collected 26 plugins" - **Fixed Tar Archive Path Issues**: - Replaced unreliable `cd` + relative paths with `tar -C` + absolute paths - Uses `pwd` with `path join` for robust path construction - Improved error diagnostics showing tar exit codes and stderr - Now properly creates bin archives (plugins-only-0.108.0-darwin-arm64.tar.gz) - **Fixed Size Calculation Error**: - Changed `(ls $archive_path).size` to `(ls $archive_path | get 0.size)` - `ls` returns list of records, not single record - Properly calculates archive file size in MB #### Plugin Dependency Update Optimization - **Fixed Unnecessary Plugin Rebuilds**: - Root cause: `update_all_plugins.nu` always touched all Cargo.toml files - Solution: Only save if content actually changed - Compares original vs updated TOML before writing - Preserves file timestamps for unchanged dependencies - Result: Only plugins with real changes trigger rebuilds (hashes, highlight) #### Files Modified - `justfiles/help.just` - Added version-update module to help system - `scripts/create_full_distribution.nu` - Fixed plugin collection, path handling, and size calculation - `scripts/update_all_plugins.nu` - Optimized to avoid unnecessary file touches #### Impact - ✅ Version-update commands now fully discoverable - ✅ Phase 3 bin archive creation works correctly - ✅ Efficient plugin rebuild (no false positives) - ✅ Better error diagnostics in build process --- ## [0.108.0] - 2025-10-18 ### 🎯 Nushell Core Update: 0.107.1 → 0.108.0 #### Major Changes - **Updated Nushell to 0.108.0** with MCP (Model Context Protocol) support - **Fixed critical documentation bugs** in `best_nushell_code.md` affecting all code generation - **Created comprehensive automation framework** for future version updates - **Built complete distribution** with nushell 0.108.0 + all plugins #### Critical Bug Fixes - **Rule 16 (Function Signatures)**: Fixed incorrect syntax `]: type {` → `]: nothing -> type {` - **Rule 17 (String Interpolation)**: Fixed non-working syntax `[$var]` → `($var)` - Both bugs were in documentation and caused all generated code to fail parsing #### New Features - ✅ **MCP Support**: Model Context Protocol for AI agent integration - ✅ **Enhanced SQLite**: Improved database operations - ✅ **System Clipboard**: Native clipboard integration - ✅ **Trash Support**: Safe file deletion to trash #### Breaking Changes - **`into value` → `detect type`**: Command deprecated (still works with warning) - Shows helpful migration message - Recommends `update cells {detect type}` instead - Allows gradual migration - **Stream Error Handling**: Collecting streams with errors now raises errors - Requires explicit error handling with `try`/`catch` #### New Automation Scripts (8 scripts created) 1. **`download_nushell.nu`** (285 lines) - Download from GitHub tags 2. **`analyze_nushell_features.nu`** (350 lines) - Parse and validate features 3. **`audit_crate_dependencies.nu`** (390 lines) - Audit plugin dependencies 4. **`detect_breaking_changes.nu`** (425 lines) - Detect API breaking changes 5. **`update_nushell_version.nu`** (414 lines) - Main update orchestrator 6. **`update_all_plugins.nu`** (NEW) - Bulk plugin updater 7. **`create_full_distribution.nu`** (NEW) - Complete packaging workflow 8. **`complete_update.nu`** (NEW) - All-in-one update script #### Documentation Created - **`updates/108/NUSHELL_0.108_UPDATE_SUMMARY.md`** - Complete update summary - **`updates/108/MIGRATION_0.108.0.md`** - Step-by-step migration guide - **`updates/108/NUSHELL_UPDATE_AUTOMATION.md`** - Automation documentation - **`guides/COMPLETE_VERSION_UPDATE_GUIDE.md`** - Comprehensive update guide #### Build System Improvements - **Build Time**: Optimized to 2m 55s (from 15+ minutes) - **Features**: All desired features validated and included - **Workspace**: Proper `--workspace` flag for system plugins - **Artifacts**: Complete binary collection system #### Validation & Testing - ✅ All syntax patterns tested against actual 0.108.0 binary - ✅ Function signatures validated - ✅ String interpolation validated - ✅ Error handling patterns validated - ✅ Pipeline processing validated - ✅ Breaking changes verified #### Impact - **Developer Experience**: 80% reduction in update time with automation - **Code Quality**: All future code will use correct syntax - **Maintainability**: Semi-automated updates with 3 manual checkpoints - **Documentation**: Comprehensive guides for all future updates #### Files Modified - `best_nushell_code.md` - Fixed Rules 16 & 17, Quick Reference, Summary - `nushell/` - Updated to 0.108.0 - `nu_plugin_*/Cargo.toml` - Dependency versions updated - `scripts/` - 8 new automation scripts - `updates/108/` - Complete documentation - `guides/` - New comprehensive guide #### Migration Notes - Old `into value` usage still works but shows deprecation warning - Update to `detect type` or `update cells {detect type}` to remove warnings - Stream collection operations may need `try`/`catch` for error handling - All plugins compatible after dependency updates --- ## Changes since commit 0a460ce (2024-09-20) ### 🚀 Major Feature: Complete Nushell Distribution System #### Full Distribution Infrastructure - **Complete Nushell binary distribution**: Added capability to build, package, and distribute Nushell itself alongside plugins - **Zero-prerequisite installation**: Users can install complete Nushell environment without having Rust, Cargo, or Nushell pre-installed - **Cross-platform bootstrap installers**: Universal POSIX shell installer (`install.sh`) and Windows PowerShell installer (`install.ps1`) - **Multi-platform packages**: Support for Linux x86_64/ARM64, macOS x86_64/ARM64, Windows x86_64 - **Self-contained distribution packages**: Complete packages including binaries, configuration, documentation, and installers #### New Build System - **`scripts/build_nushell.nu`**: Comprehensive script to build nushell with all workspace plugins - **`scripts/collect_full_binaries.nu`**: Advanced binary collection system for nushell + all plugins - **`scripts/create_distribution_packages.nu`**: Multi-platform package creator with manifest generation - **`scripts/lib/common_lib.nu`**: Shared utility library with logging, validation, and platform detection - **Enhanced justfile**: Added 40+ new recipes in `justfiles/full_distro.just` for complete distribution workflows #### Installation and Configuration System - **`scripts/install_full_nushell.nu`**: Advanced nu-based installer with plugin selection and configuration options - **`scripts/verify_installation.nu`**: Comprehensive installation verification with detailed reporting - **`scripts/templates/default_config.nu`**: Complete 500+ line Nushell configuration with optimizations - **`scripts/templates/default_env.nu`**: Cross-platform environment setup with development tool integration - **`etc/distribution_config.toml`**: Central distribution configuration management #### Bootstrap Installers (Zero Prerequisites) - **`installers/bootstrap/install.sh`**: 900+ line universal POSIX installer for Linux/macOS - Automatic platform detection and binary download - Build from source fallback capability - PATH configuration for all major shells - Plugin registration and configuration creation - **`installers/bootstrap/install.ps1`**: 800+ line Windows PowerShell installer with equivalent features - **Complete documentation**: Installation guides, troubleshooting, and security considerations #### Uninstall System - **`scripts/templates/uninstall.sh`** and **`uninstall.ps1`**: Clean removal scripts for all platforms - **Complete cleanup**: Removes binaries, configurations, PATH entries with optional backup - **Plugin unregistration**: Clean removal from nushell registry #### Key Distribution Workflows ```bash # Build complete distribution just build-full # Build nushell + all plugins # Create packages just pack-full # Current platform just pack-full-all # All platforms just pack-full-checksums # With SHA256 checksums # Installation and verification just verify-full # Verify installation just test-install-full # Test complete workflow just release-full-cross # Full cross-platform release ``` #### Installation Experience - **One-liner installation**: `curl -sSf https://your-url/install.sh | sh` - **Multiple installation modes**: User (~/.local/bin), system (/usr/local/bin), portable - **Automatic plugin registration**: All plugins registered and verified with `nu -c "plugin list"` - **Configuration management**: Sensible defaults with backup and update capabilities ### 🎯 Major Updates #### Documentation and Repository Structure - **Enhanced README.md**: Significantly expanded documentation with 682 new lines covering: - Comprehensive plugin collection overview - Detailed development workflows and automation - Version consistency system documentation - Advanced upstream tracking system guide - Complete command reference and usage examples #### Script and Automation Cleanup - **Removed legacy scripts**: Cleaned up old bash scripts (build-all.sh, collect-install.sh, make_plugin.sh) - **Streamlined automation**: Consolidated script system in favor of unified approach via justfile and nushell scripts ### 🔧 Plugin Updates and Dependency Management #### Nushell Core Updates - **Updated nushell submodule**: Comprehensive update to latest nushell version (0.107.1) - **Synchronized dependencies**: Updated all nu-* dependencies across all plugins for version consistency - **Updated Cargo.lock files**: Refreshed dependency lock files for all plugins #### Plugin-Specific Changes ##### nu_plugin_clipboard - Updated Cargo.toml with new dependency versions - Refreshed Cargo.lock with 253 dependency changes ##### nu_plugin_desktop_notifications - Updated Cargo.toml for nushell 0.107.1 compatibility - Refreshed Cargo.lock with 218 dependency updates ##### nu_plugin_hashes - **Enhanced functionality**: Updated hasher.rs implementation - **Build system improvements**: Modified build.rs configuration - Updated Cargo.toml with 24 configuration changes - Refreshed Cargo.lock with 283 dependency updates ##### nu_plugin_highlight - **Code improvements**: Enhanced highlight.rs and plugin.rs implementations - Updated for new nushell plugin API compatibility - Refreshed Cargo.lock with 476 dependency updates ##### nu_plugin_image - **Major code refactoring**: Comprehensive updates to image processing modules - **Removed deprecated code**: Deleted ansi_to_image.rs (replaced with modular approach) - **Enhanced modules**: - Updated escape_parser.rs, font_family.rs, internal_scale.rs - Improved palette.rs and printer.rs implementations - Enhanced nu_plugin.rs for both ansi_to_image and image_to_ansi - **Logging improvements**: Updated logger.rs and macros.rs - **Main entry point**: Updated main.rs with new plugin architecture - Refreshed Cargo.lock with 494 dependency updates ##### nu_plugin_kcl and nu_plugin_tera - Updated submodule references - Synchronized with latest upstream changes ##### nu_plugin_port_extension and nu_plugin_qr_maker - Updated Cargo.toml for version consistency - Refreshed Cargo.lock files #### API KCL Plugin - Updated Cargo.lock with 266 dependency changes ### 🏗️ Repository Infrastructure Updates #### Git Tracking Cleanup - **Removed nushell directory from tracking**: The nushell submodule directory is now properly ignored - **Updated .gitignore**: Added patterns for nushell directory, nushell-* files, and *.tar.gz archives ### 📊 Statistics Summary - **Total files changed**: 2,082 - **Lines added**: 2,373 - **Lines removed**: 339,936 - **Net change**: -337,563 lines (primarily from removing nushell directory from tracking) ### 🎯 Key Benefits 1. **Version Consistency**: All plugins now use synchronized nushell dependencies 2. **Enhanced Documentation**: Comprehensive guides for development and usage 3. **Improved Plugin APIs**: Updated to latest nushell plugin architecture 4. **Better Development Experience**: Streamlined automation and clearer workflows 5. **Modern Codebase**: Updated to latest Rust and nushell best practices ### 🔄 Migration Notes - Legacy bash scripts have been removed in favor of unified justfile and nushell script approach - All plugins updated to nushell 0.107.1 compatibility - Enhanced upstream tracking system now fully operational - Version consistency checking is now mandatory for all operations - **Important**: The nushell directory is no longer tracked by git - it should be managed as a local dependency This represents a major modernization and cleanup of the nushell plugins repository, with streamlined tracking and improved developer experience.