RubyLLM::Instructor::Utilsmodule —dry_contract?is now a shared helper instead of a private method copy-pasted in two places.- Positional
Structsupport —Struct.new(:x, :y)(withoutkeyword_init: true) is now hydrated correctly via positional arguments. mode:parameter validation — passing an unknown mode now raisesArgumentErrorimmediately with a clear message instead of silently falling through.
- Breaking:
ValidationErroris now raised (instead ofRuntimeError) when all retries are exhausted. Update anyrescue RuntimeErroraround#chatcalls torescue RubyLLM::Instructor::ValidationError. - Retry prompt now includes the original task:
"Original task: …\n\nYour previous response failed validation: …", giving the model full context on each retry instead of only the error message. ruby_llm-schemaruntime dependency tightened to>= 0.4.0, < 2to guard against unexpected breaking major-version upgrades.- Gemspec now derives
versionfromRubyLLM::Instructor::VERSIONconstant. - Added
homepage,source_code_uri,changelog_uri, andbug_tracker_urito gemspec metadata.
- Initial release