v0.15.0
A tool-focused release: the Playground becomes a glass-box run inspector, and the built-in tool set grows to 39 tools in 7 groups.
Playground: glass-box run inspector
The admin Tool Playground now shows the complete nr_llm ↔ LLM dialog as it happens: every outbound request (messages sent, tools offered), every response (structured view, raw JSON, extracted thinking), every tool execution with arguments, result and duration — streamed live from the moment you click Run, with a summary strip for rounds, tool calls, token split, estimated cost and wall time. A dry-run mode assembles and shows the exact prompt without calling the model; max-tokens and temperature are run controls, and truncated responses are flagged. (#314, #317, #320, ADR-040/041)
28 new built-in tools
The tool catalogue now answers the everyday diagnostic questions directly:
- Who changed this? —
get_record_historyrenders a record's sys_history asold → newper field with user and time; credential-like values stay withheld. (#325) - Why is this URL broken? —
resolve_urlmaps a URL to its page via the real router;probe_urlGETs it (own hosts only) and auto-appends the matching log exception on a 5xx;get_last_exception,read_sourceandsearch_codefollow the trail into the code. (#323, #325) - Check my TCA / TypoScript —
validate_tcaruns structural checks (danglingforeign_table, showitem/palette references, v14ds_pointerField);check_typoscriptruns the core syntax scanner over the page-effective constants and setup, including site-set TypoScript. (#325, #326) - Schema navigation —
get_full_tca(index),get_table_schema(relations surfaced),get_flexform_schema,fluid_resolve. (#324) - Files —
list_fal_storages,browse_fal_folder,search_fal_files,get_fal_references,find_missing_files, all storage-scoped and mount-aware. (#327) - System diagnostics —
list_extensions,get_site_config(credential keys redacted),list_scheduler_tasks,get_system_status,list_deprecations,list_middlewares. (#328) - Content —
search_records,get_page_content,read_records,get_typoscript,get_tsconfig. (#321)
Every tool follows the same security contract: neutral denials, bounded output, self-enforced TYPO3 permissions for non-admins, and no secret ever egresses to the provider.
Tool groups
Every tool declares a group. Groups toggle centrally in the Tools module, restrict per LLM configuration, and (de)select per run in the playground — enablement cascades fail-closed. (#322, ADR-043)
BREAKING: ToolInterface gained getGroup(): string. Third-party tools should return their extension key, so admins can disable an extension's whole tool family with one switch.
Also
- The LLM module overview is a guided starting point with usage/cost KPIs and per-card readiness states. (#313)
- Non-UTF-8 bytes anywhere in a run no longer crash the playground; out-of-range temperature is clamped. (#315–#317)
- Tip for small local models: restrict runs to the relevant tool groups — verified live with the seeded
qwen3:4b. (#329)
Full details in the CHANGELOG.
Full Changelog: v0.14.1...v0.15.0
Installation
composer require netresearch/nr-llmPublication status
- TER: extensions.typo3.org/extension/nr_llm — 0.15.0 verified
- Packagist: packagist.org/packages/netresearch/nr-llm — 0.15.0 verified
- Documentation: docs.typo3.org/p/netresearch/nr-llm/0.15/en-us/ — render verified
Security
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-llm-0.15.0.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-llm-0.15.0.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.