v0.4.0 - Enhanced CLI Parsing, Bug Fixes, and Architectural Improvements
New Features
-
Enhanced CLI Argument Parsing
- Introduced a new
Command
module with improved functionality for parsing CLI arguments. - Added support for
Path
type arguments in CLI parsing. - Integrated CLI argument parsing with the action system for seamless command handling.
- Introduced a new
-
Improved Text Formatting
- Added support for text interpolation using the
fmt
quasi-quoter, allowing for more readable string formatting.
- Added support for text interpolation using the
Bug Fixes
-
Terminal Rendering Issue Resolved
- Fixed a critical bug where the terminal was left in an unusable state after program exit.
- Implemented proper cleanup using
Vty.shutdown
to ensure the terminal returns to a normal state.
-
Exception Handling in Worker Threads
- Resolved an issue where worker threads couldn't stop gracefully on exceptions.
- Implemented a coordinated shutdown mechanism across all threads using a
shouldExit
flag.
Improvements and Refactoring
-
Service Architecture Overhaul
- Refactored the monolithic
Service
module into smaller, focused modules for improved maintainability:Service.Core
: Core types and interfacesService.ActionWorker
: Action processingService.EventWorker
: Event handling and model updatesService.RenderWorker
: View renderingService.RuntimeState
: Shared runtime state management
- Refactored the monolithic
-
Enhanced Error Handling
- Introduced a new
ActionResult
type in theAction
module for more robust error management. - Improved logging and error reporting throughout service components.
- Introduced a new
-
Core Module Updates
- Added new utility functions to
Array
,Basics
, andIO
modules, expanding the toolkit for developers.
- Added new utility functions to
These updates significantly improve the stability, functionality, and developer experience of the NeoHaskell CLI. Users should experience better performance, more reliable CLI interactions, and improved error handling.