|
| 1 | +# Changelog |
| 2 | + |
| 3 | +## [Unreleased] |
| 4 | + |
| 5 | +### Fixed |
| 6 | + |
| 7 | +- **Boolean flag handling:** Fixed critical bug where boolean flags with `defaultValue: "false"` were incorrectly evaluated as `true` due to `Boolean("false")` coercion. Removed all string boolean defaults from command options (add, remove, update, list, info) |
| 8 | +- **Disk space check:** Fixed health check to show actual disk space instead of free RAM. Now uses platform-specific commands (`df` on macOS/Linux, `wmic` on Windows) for accurate reporting |
| 9 | +- **Network connectivity:** Improved marketplace/OpenVSX connectivity checks to use GET requests with redirect support and proper User-Agent headers instead of HEAD requests that often failed |
| 10 | +- **Local VSIX installation:** Fixed path resolution for local VSIX files to use absolute paths, preventing installation failures |
| 11 | +- **EventEmitter warning:** Increased max listeners limit to 20 to prevent warnings during parallel operations (remove, update) |
| 12 | +- **Remove flow UX:** Removed redundant confirmation prompt - now only asks once when removing extensions |
| 13 | + |
| 14 | +### Added |
| 15 | + |
| 16 | +- **YAML import/export support:** Full support for YAML format in extension lists alongside JSON and TXT |
| 17 | + - Import: Accepts `.yaml` and `.yml` files with auto-detection |
| 18 | + - Export: `list --format yaml` outputs human-readable YAML |
| 19 | + - Supports both simple array format and VS Code-compatible object with `recommendations` key |
| 20 | +- **Interactive mode improvements:** |
| 21 | + - Reorganized Extension Info menu with two options: "Single extension details" and "All installed extensions" (table view) |
| 22 | + - Moved table viewing from Export to Extension Info menu for better logical organization |
| 23 | + - Updated help text to be more relevant to interactive mode with menu navigation tips |
| 24 | + - Improved menu labels for clarity ("Export extensions list" instead of "List installed extensions") |
| 25 | + |
| 26 | +### Changed |
| 27 | + |
| 28 | +- **JSON export format:** `list` command now exports proper VS Code `extensions.json` format with `recommendations` key instead of plain arrays for better compatibility |
| 29 | +- **Extension list parsing:** Added YAML format auto-detection based on content patterns (starts with `-` or contains `: `) |
| 30 | +- **Input detection:** Updated to accept `.yaml` and `.yml` files as valid extension list formats |
| 31 | +- **Interactive help:** Tailored help screen for interactive mode showing menu options and keyboard shortcuts instead of CLI commands |
| 32 | + |
| 33 | +# [2.0.0](https://github.com/gabros20/vsix-extension-manager/compare/v1.16.0...v2.0.0) (2024-12-19) |
| 34 | + |
| 35 | +## 🚀 BREAKING CHANGES |
| 36 | + |
| 37 | +This is a **complete refactor** of the CLI interface. While all functionality is preserved, the command structure and flag names have changed significantly. |
| 38 | + |
| 39 | +### Command Structure Changes |
| 40 | + |
| 41 | +**Old (v1.x) → New (v2.0):** |
| 42 | + |
| 43 | +- `download`, `quick-install`, `from-list`, `install`, `install-direct` → **`add`** (universal entry point) |
| 44 | +- `uninstall` → **`remove`** |
| 45 | +- `update-installed` → **`update`** |
| 46 | +- `export-installed` → **`list`** |
| 47 | +- `versions` → **`info`** |
| 48 | +- New: **`doctor`** (health check and diagnostics) |
| 49 | +- New: **`setup`** (first-run configuration wizard) |
| 50 | + |
| 51 | +### Flag Changes |
| 52 | + |
| 53 | +**Simplified and standardized:** |
| 54 | + |
| 55 | +- `--verbose` → `--debug` |
| 56 | +- `--reinstall` → `--force` |
| 57 | +- `--check-compatibility` → `--check-compat` |
| 58 | +- `--allow-mismatched-binary` → `--allow-mismatch` |
| 59 | +- `--install-parallel` → `--parallel` |
| 60 | +- `--no-install` → `--download-only` |
| 61 | +- `--out-dir` → `--output` |
| 62 | + |
| 63 | +**Removed (use positional arguments):** |
| 64 | + |
| 65 | +- `--url`, `--vsix`, `--file`, `--dir`, `--id` → Use: `vsix add <input>` |
| 66 | + |
| 67 | +### Configuration Changes |
| 68 | + |
| 69 | +- **New:** YAML-based configuration (`.vsix/config.yml`) |
| 70 | +- **New:** Profile support for different environments |
| 71 | +- **Automatic migration** from v1.x config files |
| 72 | +- Enhanced configuration with more options and better organization |
| 73 | + |
| 74 | +### Features |
| 75 | + |
| 76 | +#### Universal `add` Command |
| 77 | + |
| 78 | +- **Smart input detection** - automatically determines input type (URL, file, directory, list, extension ID) |
| 79 | +- **Unified workflow** - one command for all installation scenarios |
| 80 | +- **Plan preview** - shows what will happen before executing |
| 81 | +- **Automatic retry** - intelligent retry with escalating strategies |
| 82 | +- **Enhanced error handling** - contextual suggestions and recovery options |
| 83 | + |
| 84 | +#### Configuration System v2.0 |
| 85 | + |
| 86 | +- **YAML configuration** - human-readable, easy to edit |
| 87 | +- **Profile support** - switch between different configurations (production, development, CI) |
| 88 | +- **Automatic migration** - seamlessly upgrades v1.x configs to v2.0 |
| 89 | +- **Enhanced precedence** - CLI > ENV > File > Defaults (clearly documented) |
| 90 | +- **First-run wizard** - interactive setup on first use |
| 91 | + |
| 92 | +#### Background Update Checker |
| 93 | + |
| 94 | +- **Non-blocking checks** - doesn't interrupt workflow |
| 95 | +- **Smart caching** - respects configured frequency (never, daily, weekly, always) |
| 96 | +- **Minimal notifications** - subtle hints about available updates |
| 97 | +- **Zero telemetry** - completely local checking |
| 98 | + |
| 99 | +#### Health Check & Diagnostics |
| 100 | + |
| 101 | +- **`doctor` command** - comprehensive health checks |
| 102 | +- **Auto-fix** - automatically repair common issues |
| 103 | +- **Proactive detection** - find problems before they cause failures |
| 104 | +- **Clear reports** - easy-to-understand diagnostic output |
| 105 | + |
| 106 | +#### Standardized Output |
| 107 | + |
| 108 | +- **Consistent JSON API** - machine-readable across all commands |
| 109 | +- **Multiple formats** - table, JSON, YAML, CSV, plain text |
| 110 | +- **Proper exit codes** - reliable for CI/CD integration |
| 111 | +- **Rich details** - comprehensive information in all modes |
| 112 | + |
| 113 | +#### Intelligent Retry System |
| 114 | + |
| 115 | +- **Automatic retry** - handles transient failures |
| 116 | +- **Escalating strategies** - timeout increase, direct install, download-only fallback |
| 117 | +- **User intervention** - prompts for decisions when automated recovery fails |
| 118 | +- **Batch context** - shared retry state across multiple operations |
| 119 | + |
| 120 | +### Improvements |
| 121 | + |
| 122 | +- **Code quality:** ~777 lines of boilerplate removed |
| 123 | +- **Build:** 0 TypeScript errors |
| 124 | +- **Architecture:** Clean separation of command layer and business logic |
| 125 | +- **Error handling:** Contextual suggestions and automated recovery |
| 126 | +- **User experience:** Progressive disclosure, smart defaults, fail-forward design |
| 127 | +- **Performance:** Optimized startup, efficient caching, parallel operations |
| 128 | +- **Testing:** 61 integration tests covering core workflows |
| 129 | + |
| 130 | +### Deprecated/Removed |
| 131 | + |
| 132 | +**Removed commands** (functionality moved to unified commands): |
| 133 | + |
| 134 | +- `download` - Use `add <input> --download-only` |
| 135 | +- `quick-install` - Use `add <url>` |
| 136 | +- `from-list` - Use `add <list-file>` |
| 137 | +- `install` - Use `add <file|directory>` |
| 138 | +- `install-direct` - Use `add` (auto-detects method) |
| 139 | +- `export-installed` - Use `list --output <file>` |
| 140 | +- `update-installed` - Use `update` |
| 141 | +- `uninstall` - Use `remove <id>` |
| 142 | + |
| 143 | +**Interactive mode temporarily disabled:** |
| 144 | + |
| 145 | +- Will be redesigned with v2.0 command structure |
| 146 | +- Use direct commands: `vsix add`, `vsix remove`, `vsix update`, `vsix list`, `vsix info` |
| 147 | + |
| 148 | +### Migration Guide |
| 149 | + |
| 150 | +See [MIGRATION.md](./MIGRATION.md) for complete migration documentation. |
| 151 | + |
| 152 | +**Quick Reference:** |
| 153 | + |
| 154 | +```bash |
| 155 | +# v1.x → v2.0 command mapping |
| 156 | +vsix-extension-manager download --url <url> → vsix-extension-manager add <url> |
| 157 | +vsix-extension-manager quick-install --url <url> → vsix-extension-manager add <url> |
| 158 | +vsix-extension-manager install --vsix <file> → vsix-extension-manager add <file> |
| 159 | +vsix-extension-manager from-list --file <list> → vsix-extension-manager add <list> |
| 160 | +vsix-extension-manager export-installed -o list.txt → vsix-extension-manager list --output list.txt |
| 161 | +vsix-extension-manager update-installed → vsix-extension-manager update |
| 162 | +vsix-extension-manager uninstall <id> → vsix-extension-manager remove <id> |
| 163 | +vsix-extension-manager versions <id> → vsix-extension-manager info <id> |
| 164 | +``` |
| 165 | + |
| 166 | +--- |
| 167 | + |
1 | 168 | # [1.16.0](https://github.com/gabros20/vsix-extension-manager/compare/v1.15.0...v1.16.0) (2025-10-01) |
2 | 169 |
|
3 | 170 | ### Bug Fixes |
|
0 commit comments