Skip to content

v0.4.0 - Enhanced CLI Parsing, Bug Fixes, and Architectural Improvements

Compare
Choose a tag to compare
@NickSeagull NickSeagull released this 01 Sep 17:32
· 1 commit to main since this release
714a27c

New Features

  1. 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.
  2. Improved Text Formatting

    • Added support for text interpolation using the fmt quasi-quoter, allowing for more readable string formatting.

Bug Fixes

  1. 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.
  2. 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

  1. Service Architecture Overhaul

    • Refactored the monolithic Service module into smaller, focused modules for improved maintainability:
      • Service.Core: Core types and interfaces
      • Service.ActionWorker: Action processing
      • Service.EventWorker: Event handling and model updates
      • Service.RenderWorker: View rendering
      • Service.RuntimeState: Shared runtime state management
  2. Enhanced Error Handling

    • Introduced a new ActionResult type in the Action module for more robust error management.
    • Improved logging and error reporting throughout service components.
  3. Core Module Updates

    • Added new utility functions to Array, Basics, and IO modules, expanding the toolkit for developers.

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.