Releases: yaniv-golan/ostruct
ostruct-cli v0.7.2: Dependency Fix & Documentation Enhancements
Release Notes
ostruct-cli v0.7.2 is a maintenance release that resolves dependency issues and enhances documentation.
Bug Fixes
- Fixed startup errors by adding the missing Pygments and jinja2 dependencies
- Resolved Pydantic protected namespace warnings by updating to openai-structured v3.0.0
Documentation Improvements
- Added project motivation section to README explaining why ostruct was created
- Added real-world use cases with examples from our example directory
- Enhanced README with visual elements including header image and high-level diagram
- Improved overall documentation clarity and structure
Under the Hood
- Updated dependency management for better compatibility
- Streamlined installation experience
This release focuses on improving stability and user experience. Users experiencing errors when running ostruct
command should update to this version for a smoother experience.
ostruct-cli v0.7.1: Dependency Fix & Documentation Enhancements
Release Notes
ostruct-cli v0.7.1 is a maintenance release that resolves dependency issues and enhances documentation.
Bug Fixes
- Fixed startup errors by adding the missing Pygments dependency
- Resolved Pydantic protected namespace warnings by updating to openai-structured v3.0.0
Documentation Improvements
- Added project motivation section to README explaining why ostruct was created
- Added real-world use cases with examples from our example directory
- Enhanced README with visual elements including header image and high-level diagram
- Improved overall documentation clarity and structure
Under the Hood
- Updated dependency management for better compatibility
- Streamlined installation experience
This release focuses on improving stability and user experience. Users experiencing errors when running ostruct
command should update to this version for a smoother experience.
v0.7.0: GPT-4.5 Support and Non-intrusive Registry Updates
[0.7.0] - 2025-03-01
Added
- Support for GPT-4.5 models
- Non-intrusive registry update checks with user notifications
- Ability to disable registry update checks via
OSTRUCT_DISABLE_UPDATE_CHECKS
environment variable - New registry update command:
ostruct update-registry
with support for checking update status and forcing updates
Changed
- Updated openai-structured dependency to version 2.1.0
- Improved update notification mechanism to be minimally intrusive
Fixed
- Fixed type errors in registry_updates.py by adding explicit float conversion for last_check_time
- Fixed type errors in cli.py with null checks for path operations
- Fixed incorrect RegistryUpdateStatus enum usage
- Replaced non-existent ExitCode.EXTERNAL_SERVICE_ERROR with ExitCode.API_ERROR
ostruct v0.6.2: Enhanced Documentation, Security, and Developer Experience
This release focuses on improving documentation, security, and developer experience with comprehensive examples, enhanced validation, and better error handling.
Highlights
- 📚 New etymology analysis example showcasing weird use cases :)
- 🎨 Added official ostruct logo assets
- 🔒 Enhanced path validation and security checks
- 📝 Improved documentation and error messages
- 🔧 Better whitespace handling and template parsing
What's New
Documentation & Examples
- Added comprehensive etymology analysis example with full documentation and schemas
- Added clear documentation for system prompt precedence rules
- Added detailed logging configuration guide with command-line options
- Updated project description for better clarity
- Added ostruct logo assets in multiple formats (SVG, PNG at 1x, 2x, 3x)
Security & Validation
- Enhanced path validation and security checks
- Improved schema validation and error handling
- Fixed path traversal detection for Unicode filenames
- Refined security error messages and context
Developer Experience
- Changed comment block handling to explicitly reject nested comments
- Improved whitespace handling in variable parsing
- Fixed infinite recursion in PathSecurityError.details property
- Updated Python version requirement to 3.10
- Bumped openai-structured dependency
Cleanup
- Removed outdated migration guide
- Removed temporary Read the Docs configuration
Upgrading
This release includes minor improvements and bug fixes with no breaking changes. Users should be able to upgrade without any modifications to their existing code.
Requirements
- Python 3.10 or later
- Latest version of openai-structured
v0.6.1: Documentation and Code Organization
Changes
- Added comprehensive template creation guide
- Refactored model creation code into separate module
- Simplified code review schema structure + compatibility with OpenAI schema requirements
- Improved error handling and messages
- Updated documentation clarity and examples
Technical Details
- Created
model_creation.py
for model creation logic - Enhanced template guide with usage examples and best practices
- Simplified code review schema while maintaining compatibility
- Fixed file not found error handling
- Improved string formatting in error messages
v0.6.0: Enhanced Schema Validation and Error Handling
This release introduces significant improvements to schema validation and error handling, with a focus on OpenAI compatibility and developer experience.
Breaking Changes
- Schema validation now strictly enforces OpenAI compatibility rules:
- Root schemas must be of type 'object'
- Arrays must be wrapped in an object property
- All properties must be required in root schema
additionalProperties: false
is now mandatory- Enforced limits on nesting depth, property counts, and enum values
New Features
- Enhanced template context support for pattern-matched files
- Added shell completion support for command options and file paths
Improvements
- Fixed pattern-based file matching support with
-p
or--pattern
option - Comprehensive error messages with:
- Detailed context about validation failures
- Specific examples for fixing common issues
- Clear troubleshooting steps
- Better error handling for API responses
- Enhanced type safety with improved type hints
- Pinned tiktoken to version 0.9.0 for better compatibility
Documentation
- Added comprehensive documentation with detailed usage examples
- Improved error message clarity with examples and fixing instructions
- Enhanced troubleshooting guides in error messages
ostruct-cli v0.5.0: Enhanced Model Support & CLI revamp
This release brings major improvements to model support, CLI architecture, and developer experience. Key highlights include support for new OpenAI models, a revamped CLI interface, and enhanced type safety.
🚀 Major Features
- Support for o1 and o3 models with parameter validation
- New subcommand-based CLI structure
- Integration with openai-structured v2.0.0
💎 Improvements
- Modernized CLI options following Click conventions
- New subcommand syntax:
ostruct run <TASK_TEMPLATE> <SCHEMA_FILE> [OPTIONS]
-f/-d
for file/directory mappings- Simplified parameter naming
- New subcommand syntax:
- Enhanced type safety with improved type hints
- Much better error messages for model validation
- Improved path handling and security checks
🔧 Breaking Changes
- Minimum Python version increased to 3.10
- New CLI command structure using subcommands
- Old:
ostruct --task-file <file> --schema-file <schema>
- New:
ostruct run <file> <schema> [options]
- Old:
- Command-line options renamed for consistency
- Changed default model to
gpt-4o
- Changed default temperature from 0.0 to 0.7
🛡️ Security
- Enhanced path security validation
- Improved directory traversal prevention
- More detailed security error messages
🔨 Developer Experience
- Improved MyPy configuration
- Enhanced test infrastructure
- Better OpenAI test isolation
- Consistent use of
ExitCode
enum
For detailed changes and migration instructions, please see the CHANGELOG.md.
v0.4.0: Enhanced Model Support, Cross-Platform Improvements, and Security Refinements
This release brings significant improvements to model handling, cross-platform compatibility, and security features.
Added
- Improved model handling with better support for non-streaming models
- Enhanced Windows path handling for better cross-platform compatibility
- Thread-safe file content handling in FileInfoList
Fixed
- Resolved test failures in symlink behavior tests
- Improved error handling for permission and OS errors
- Enhanced content property error handling in FileInfo class
- Fixed ReadTheDocs project links
- Removed redundant code and unused type ignore comments
Changed
- Refactored security module for better organization and maintainability
- Streamlined security test suite
- Improved code formatting and organization throughout the codebase
- Updated openai-structured dependency to ^1.3.0
- Switched to pre-commit for consistent checks between local and CI
Security
- Enhanced thread safety in file handling operations
- Improved permission checking and error handling for file operations
v0.3.0: Enhanced Security and CLI Improvements
This release brings significant improvements to security handling and CLI functionality,
along with comprehensive test coverage for path validation.
Security Enhancements:
- Fixed case sensitivity handling in path validation
- Added robust path traversal prevention
- Improved symlink security validation
- Enhanced Unicode path normalization and security checks
- Added comprehensive security test suite
CLI Improvements:
- Migrated to Click for better CLI handling
- Added configuration validation features
- Improved file handling and security scanning
- Added new examples for config validation and security scanning
Developer Experience:
- Added comprehensive test coverage for security features
- Improved type checking with mypy
- Enhanced code formatting with black
- Added examples directory with practical use cases
Breaking Changes:
- CLI interface has been updated due to Click migration
- Security validation now handles case sensitivity consistently across platforms
For more details, see the documentation and examples directory.
Release v0.2.0: Enhanced File Handling & Test Generation
🚀 Major Features
- Improved file handling with consistent FileInfoList behavior
- Enhanced test generation with detailed coverage tracking
- Added support for non-object root schemas
- Added extensive debug logging throughout
✨ Improvements
-
File Handling
- More reliable file list operations with proper type support
- Better handling of single files and directory collections
- Improved slice operations for file lists
- Enhanced security validation for file access
-
Test Generation
- New test case schema with better metadata
- Improved coverage tracking and reporting
- Better support for different test types (unit, integration, edge cases)
- Enhanced test generation prompts
-
Developer Experience
- Added comprehensive debug logging
- Improved error messages and validation
- Better type safety throughout the codebase
- Enhanced documentation and examples
🐛 Bug Fixes
- Fixed type annotations and removed unnecessary type ignores
- Fixed array item type handling in schema processing
- Improved error handling in file collection
- Fixed various edge cases in file handling
📚 Documentation
- Updated migration guide
- Enhanced CLI documentation
- Added new examples for test generation
- Improved configuration documentation
🔧 Technical Details
- Python 3.9+ support maintained
- All dependencies updated to latest compatible versions
- Improved mypy configuration for better type checking