CHANGELOG.md

# Changelog

All notable changes to this project will be documented in this file.

## [0.2.0] - 2025-01-28

### Added
- Added `configure_http_client/3` function to provide a more flexible way to configure HTTP clients
- Added type specifications for all public functions

### Changed
- **Breaking**: Removed `adapter_config` from `start_chat_with!/2` options. Configuration should now be done through `configure_adapter/2`
- Improved error handling for HTTP client validation
- Enhanced error handling for better insight into validation failures
- Restructured the codebase for better maintainability

### Fixed
- Fixed Dialyzer warnings across the codebase
- Fixed type specifications to be more accurate and complete

## [0.1.3] - 2025-01-22

### Added
- Added HTTP options configuration support for OpenAI adapter
- Added configurable timeouts for HTTP requests

### Changed
- Improved HTTP client configuration handling
- Enhanced documentation and examples

## [0.1.2] - 2025-01-22

### Added
- Added temperature configuration option for OpenAI adapter
- Added proper HTTP timeout configurations

### Fixed
- Fixed module loading issues with `Code.ensure_loaded?/1`
- Fixed custom type handling in JSON Schema generation

### Changed
- Improved error handling in custom type implementations
- Enhanced documentation for custom types

## [0.1.1] - 2025-01-21

### Added
- Added support for custom `llm_description/0` callback
- Added new parser implementation for better field documentation validation
- Added comprehensive documentation and examples
- Added evaluation modules for testing and demonstration

### Changed
- Simplified the parser implementation
- Improved documentation parsing and validation
- Enhanced error messages for missing field documentation

### Fixed
- Fixed documentation validation for nested fields
- Fixed schema field parsing

All these changes follow semantic versioning principles, where:
- 0.2.0 includes breaking changes to the API
- 0.1.1 through 0.1.3 add new features and fixes in a backward-compatible way

## [0.1.0] - 2025-01-20

### Added

- Initial release of Mentor.
  - Provides a high-level API to generate structured outputs based on various schemas, including raw maps, structs, and `Ecto` schemas.
  - Implements the `Mentor.LLM.Adapter` behaviour for integrating with different Large Language Models (LLMs).
  - Includes an adapter for OpenAI's language models.
  - Supports defining and validating data structures using the `Mentor.Schema` protocol.
  - Offers basic debugging capabilities.

> Note: This changelog follows the principles of [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).