Skip to content

Releases: yaniv-golan/ostruct

ostruct-cli v0.7.2: Dependency Fix & Documentation Enhancements

15 Mar 20:25
Compare
Choose a tag to compare

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

15 Mar 20:12
Compare
Choose a tag to compare

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

01 Mar 14:20
Compare
Choose a tag to compare

[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

22 Feb 14:03
Compare
Choose a tag to compare

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

18 Feb 15:11
Compare
Choose a tag to compare

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

17 Feb 14:59
Compare
Choose a tag to compare

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

16 Feb 16:06
Compare
Choose a tag to compare

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
  • 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]
  • 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

08 Feb 20:18
Compare
Choose a tag to compare

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

03 Feb 17:10
Compare
Choose a tag to compare

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

29 Jan 21:48
Compare
Choose a tag to compare

🚀 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

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