# Changelog

All notable changes to Universal Dev Workspace will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [9.0.3] - 2025-10-23

### Fixed
- Updated Claude plugin marketplace.json version references to match package version
- Ensured all version indicators are synchronized across npm, MCP, and Claude plugin metadata

## [9.0.2] - 2025-10-23

### Fixed
- Updated PACKAGE_VERSION constant in [src/server.ts:53](src/server.ts#L53) to correctly report v9.0.2
- Server version reporting (`--version`, startup banner, MCP handshake) now matches published release

## [9.0.1] - 2025-10-23

### Added
- **Enhanced REPL Intelligence**: `read_process_output` now detects and reports REPL prompt types (Python, Shell, Node.js, etc.)
  - New `detectedPromptType` field identifies the REPL type
  - New `waitingForInput` boolean indicates if REPL is ready for commands
  - New `recommendation` field provides actionable guidance for next steps

- **Image Rendering Support**: `read_file` now handles image files natively
  - Supports PNG, JPG, JPEG, GIF, WebP, BMP, SVG formats
  - Returns base64-encoded data with MIME type metadata
  - Enables Claude to display images directly in responses

- **PDF Text Extraction**: `read_file` can now extract text from PDF documents
  - Extracts full text content from PDF files
  - Returns metadata (title, author, page count, producer, creation date)
  - Handles encrypted PDFs with clear error messages
  - Uses pdf-parse library (externalized from bundle)

### Changed
- `read_file` return type enhanced to support union types (text, image, PDF)
- Build configuration updated to externalize pdf-parse (maintains 147KB bundle size)

### Technical
- Added `pdf-parse@1.1.1` dependency
- Added `@types/pdf-parse@1.1.5` dev dependency
- Enhanced TypeScript types with FileContent union (TextContent, ImageContent, PdfContent)
- Improved ProcessSession with getPromptType() method for REPL classification

## [9.0.0] - 2025-10-23

### Changed - Major Simplification
- **Removed GitHub module** (3 tools) - Use git CLI or dedicated GitHub MCP instead
- **Removed Browser module** (13 tools) - Use dedicated browser MCP if needed
- **Removed unified tools** (use_files, use_process, use_git, use_search, use_github, use_browser, docker_manager)
- **Removed GITHUB_TOKEN requirement** - No longer needed
- Simplified from 49 tools to **29 core DevOps tools**
- Reduced bundle size to ~145KB (from ~500KB)

### Focused Tool Set (29 tools)
- **Files**: 10 tools (read_file, write_file, edit_block, list_directory, directory_tree, create_directory, delete_file, copy_file, move_file, get_file_info)
- **Processes**: 7 tools (execute_command, start_process, interact_with_process, read_process_output, force_terminate, list_sessions, start_dev_server)
- **Git**: 10 tools (git_status, git_diff, git_add, git_commit, git_log, git_branch, git_push, git_pull, git_stash, git_clone)
- **Search**: 2 tools (search_files, search_code)

### Why This Change?
- **Focused scope**: Local development workflows only
- **Smaller footprint**: Faster installation, smaller memory usage
- **Better modularity**: Use specialized MCPs for GitHub/Browser needs
- **Simplified configuration**: No tokens or external service setup required

### Migration from v8.x
- GitHub operations: Use `gh` CLI via `execute_command` or install `@modelcontextprotocol/server-github`
- Browser automation: Install `@modelcontextprotocol/server-puppeteer` or similar
- Unified tools: Use direct tool names (e.g., `read_file` instead of `use_files` with action)

[9.0.1]: https://github.com/anthonybir/universal-dev-workspace/compare/v9.0.0...v9.0.1
[9.0.0]: https://github.com/anthonybir/universal-dev-workspace/compare/v8.1.0...v9.0.0
