Changelog
All notable changes to the TYPO3 LLM Extension are documented here.
The format follows Keep a Changelog and the project adheres to Semantic Versioning.
Version 0.6.0 (2026-03-24)
Added
DocumentCapableInterface: providers can now advertise PDF/document support;ChatCapabilitiesInterfaceexposes this viagetProviderCapabilities().- Multimodal content arrays in
chatCompletion: pass images, PDFs, and text blocks as structured content arrays alongside regular string messages. - Tool message conversion:
tool_resultblocks are now mapped correctly when assembling provider payloads.
Changed
- Migrated CI infrastructure to
netresearch/typo3-ci-workflowsshared workflows (PHP tests, docs, E2E). - Replaced GrumPHP with CaptainHook for pre-commit hooks.
Fixed
- PHPStan baseline regenerated;
ignoreErrorspatterns broadened for deprecation and array function rules to handle phpstan-typo3 v2/v3 parameter name differences. - E2E tests stabilised: heading verification added, module overview landing page assertions updated.
Version 0.5.0 (2026-03-09)
Added
- AI-powered full-chain task wizard: describe a task in plain language, AI generates task + configuration + model recommendation in one step.
- AI-powered configuration wizard: generate configurations with system prompts, parameters, and model selection.
- Custom TCA
ModelIdElement: input field with "Fetch Models" button that populates from provider API, auto-fills capabilities and pricing. ModelConstraintsWizard: field wizard that loads parameter constraint bounds per model.- Dashboard improvements: side-by-side wizard callouts, fixed headline from "LLM Providers" to "LLM Integration".
- Task execution UI: collapsible prompt details, improved result display.
- Enhanced model discovery: better Anthropic, Google, DeepSeek, Mistral support.
- TER publish workflow.
- Documentation: wizards guide with screenshots, tasks section, updated configuration reference.
Changed
- Renamed
SafeCastTraitextracted from duplicated helpers inTaskControllerandWizardGeneratorService. - SQL injection defense: regex whitelist validation for
table/column names in
FetchRecordsRequestandLoadRecordDataRequest.
Fixed
- Restored
method_exists()guards forsetShortcutContext()(TYPO3 v13 compatibility). - PHPUnit 12: replaced
createStubwithcreateMockto fix deprecation warnings.
Version 0.4.8 (2026-03-07)
Changed
- Rewritten introduction with value-oriented positioning.
- Restructured README around value proposition and audience segments.
- Updated package metadata with value-oriented descriptions.
- Added integration guide for extension developers.
Version 0.4.7 (2026-03-07)
Added
- Help page in the LLM backend module.
- Setup wizard links on empty-state list pages.
Fixed
- Use canonical endpoint URLs for known providers in setup wizard.
- Remove container class from backend module templates.
Version 0.4.6 (2026-03-06)
Fixed
- Add Fluid-compatible
getHasApiKey()getter for{provider.hasApiKey}in templates.
Version 0.4.5 (2026-03-06)
Fixed
- Use
GET /v1/modelsfor Anthropic connection test.
Version 0.4.4 (2026-03-06)
Fixed
- Use table-specific connection and simplify column checks.
- Wrap test cleanup in try/finally and assert labelField.
Version 0.4.3 (2026-03-06)
Fixed
- Handle tables without
uidcolumn in TCA utilities. - Remove hardcoded temperature from chat completions.
Version 0.4.2 (2026-03-06)
Fixed
- Add
rootLevelto provider, configuration, and model TCA definitions.
Version 0.4.1 (2026-03-06)
Fixed
- Use
max_completion_tokensinstead ofmax_tokensfor OpenAI chat completions.
Version 0.4.0 (2026-03-06)
Breaking
- Prevent plaintext API key storage via setup wizard; keys now require vault encryption.
Fixed
- Cast ExtensionConfiguration timeout values to integer.
Changed
- Use Symfony
Uuid::v7()instead of manual UUID generation.
Version 0.3.2 (2026-03-04)
Added
- Extract thinking blocks from LLM responses (
<think>tag support).
Fixed
- Preserve newlines in
extractThinkingBlocks. - Restrict CI push trigger to main branch only.
- Add
merge_grouptrigger to CI workflow.
Version 0.3.1 (2026-03-02)
Fixed
- Add Overview submodule for TYPO3 v13 module overview compatibility.
Version 0.3.0 (2026-03-01)
Added
- Expose
chatWithConfigurationandstreamChatWithConfigurationonLlmServiceManagerInterface.
Fixed
- Use integer values for
f:be.infoboxstate attribute for TYPO3 v13 compatibility. - Explicitly enable fuzz and mutation tests.
Version 0.2.2 (2026-03-01)
Fixed
- Use
toolsparent for TYPO3 v13 module compatibility.
Changed
- Consolidate caller workflows into 4 grouped files.
- Fix documentation issues found by analysis.
Version 0.2.1 (2026-02-28)
Changed
- Require
netresearch/nr-vault^0.4.0 for API key encryption.
Version 0.2.0 (2026-02-28)
Added
- PHP 8.2+ and TYPO3 v13.4+ compatibility.
- TYPO3 v13.4 ddev install command.
- Coverage uploads and fuzz/mutation CI workflow.
- Unit tests for enums, WizardResult DTO, providers, services, and specialized classes.
- Coverage tests for PromptTemplateService and TranslationService.
Changed
- Moved
phpunit.xmlandphpstan-baseline.neonintoBuild/directory. - Expanded CI matrix to PHP 8.2-8.5 and TYPO3 v13.4/v14.
- Replaced TYPO3 v14-only APIs with v13-compatible equivalents.
- Narrowed testing-framework to ^9.0 for PHPUnit 12 compatibility.
- Removed dead ProviderRegistry class and orphaned phpstan baseline file.
- Removed 55 dead translation keys.
- Harmonized composer script naming to
ci:test:php:*convention. - Migrated CI to centralized workflows.
- Added SPDX copyright and license headers.
- Replaced generic emails with GitHub references.
Fixed
- Resolved CI failures for PHP 8.2 and TYPO3 v13 compatibility.
- Resolved PHPStan failures for dual TYPO3 v13/v14 support.
- Fixed PHPUnit deprecation warnings.
- Used
CoversNothingfor excluded exception and enum test classes. - Localized user-facing hardcoded strings in controllers.
- Disabled functional tests in CI (environment-specific).
- Fixed direct
php-cs-fixercall inci:test:php:cglscript.
Version 0.1.2 (2026-01-11)
Fixed
- Fixed CI: use correct org secret name for TER token.
- Simplified TER upload workflow.
Version 0.1.1 (2026-01-11)
Fixed
- Fixed CI: create zip archive for TER upload.
Version 0.1.0 (2026-01-11)
Initial release of the TYPO3 LLM Extension.
Added
Core Features
- Multi-provider support (OpenAI, Anthropic Claude, Google Gemini, Ollama, OpenRouter, Mistral, Groq).
- Unified API via
Llm.Service Manager - Provider abstraction layer with capability interfaces.
- Typed response objects (
Completion,Response Embedding).Response - Three-tier configuration architecture (Providers, Models, Configurations).
- Encrypted API key storage using sodium_crypto_secretbox.
Feature Services
Completion: Text completion with format control (JSON, Markdown).Service Embedding: Vector generation with caching and similarity calculations.Service Vision: Image analysis with alt-text, title, description generation.Service Translation: Translation with formality control and glossary support.Service Prompt: Centralized prompt management with database-driven templates.Template Service
Specialized Services
- Image generation (DALL-E).
- Text-to-speech (TTS) and speech transcription (Whisper).
- DeepL translation integration.
Provider Capabilities
- Chat completions across all providers.
- Embeddings (OpenAI, Gemini).
- Vision/image analysis (all providers).
- Streaming responses (all providers).
- Tool/function calling (all providers).
Infrastructure
- TYPO3 caching framework integration.
- Backend module for provider management and testing.
- Prompt template management with versioning and performance tracking.
- Comprehensive exception hierarchy.
- Type-safe enums and DTOs for domain constants.
Developer Experience
- Option objects with factory presets (
Chat).Options - Full backwards compatibility with array options.
- Extensive PHPDoc documentation.
- Type-safe method signatures.
Security
- Enterprise readiness security workflows and supply chain controls.
- SLSA Level 3 provenance, Cosign signatures, and SBOM generation.
- OpenSSF Scorecard and Best Practices compliance.
Testing
- Comprehensive unit and integration tests.
- E2E testing with Playwright.
- Property-based (fuzz) testing support.
Upgrade Guides
Upgrading from Pre-Release
If you used a pre-release version:
-
Remove old extension
Remove old extensioncomposer remove netresearch/nr-llmCopied! -
Clear caches
Clear cachesvendor/bin/typo3 cache:flushCopied! -
Install current version
Install current versioncomposer require netresearch/nr-llm:^0.2Copied! -
Run database migrations
Run database migrationsvendor/bin/typo3 database:updateschemaCopied! -
Update configuration
Review your TypoScript and extension configuration for any changed keys or deprecated options.
Breaking Changes Policy
This extension follows semantic versioning:
- Major versions (x.0.0): May contain breaking changes
- Minor versions (0.x.0): New features, backwards compatible
- Patch versions (0.0.x): Bug fixes only
Breaking Changes Documentation
Each major version will document:
- Removed or changed public APIs
- Migration steps with code examples
- Compatibility layer availability
- Deprecation timeline for removed features
Deprecation Policy
- Features are marked deprecated in minor versions
- Deprecated features remain functional for one major version
- Deprecated features are removed in the next major version
- Migration documentation provided before removal