Repository navigation
1.5.2 - Enforce strict changelog entry types
Changed
-
Strict structured output for AI changelog entries: The release changelog generation now requests strict structured output from AI providers, so only supported Conventional Commit
typevalues are produced.- If an AI provider returns an invalid changelog entry
type, the release process now aborts with an error. - The error message includes:
- the originating commit identifier (commit hash),
- the invalid
typevalue received, and - the full list of allowed
typevalues.
- If an AI provider returns an invalid changelog entry
-
Strict agent execution:
ReleaseChangelogAgentnow runs in strict mode (via#[Strict], in addition to the existing#[UseCheapestModel]). This improves validation/acceptance behavior and reduces the likelihood of non-conformant structures being used. -
Improved validation diagnostics:
LaravelAiReleaseChangelogGeneratornow throws aRuntimeExceptionwith more specific context when validation fails due to an invalidtype:- commit hash,
- a debug/truncated representation of the returned
type, - and the full expected set
self::TYPES.
Documentation
- Changelog configuration guidance was updated to reflect that the release process requests strict structured output from AI providers.
Testing
- Unit tests were expanded to verify:
- the generator requests a strict OpenAI JSON schema (
strict: true) and constrainsentries[].typeto the allowed enum:feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert
- invalid
typevalues (unknown category,null, or non-string) are rejected and causegenerate()to throw aRuntimeExceptionthat includes the commit hash, the invalid value, and the expected allowed types.
- the generator requests a strict OpenAI JSON schema (
Compatibility / Migration
- This is primarily a stricter validation change.
- If your AI provider/workflow previously returned changelog
typevalues outside the allowed set, the release process will now fail early instead of accepting them. - No public configuration keys or APIs are described as changed; migration is only relevant for workflows that relied on previously non-compliant AI outputs.