Releases: netresearch/nr-landingpage
Release list
v0.3.16
Highlights
A patch release of fixes to the backend module and the generation wizard: the extension now follows the TYPO3 light and dark colour scheme, the wizard's keyboard and focus behaviour is corrected, and answers and replies no longer get lost or land in the wrong place. No breaking changes; composer require netresearch/nr-landingpage:^0.3 picks it up.
Light and dark scheme, keyboard use
- The landing page module, the wizard, the preview dialog and the FormEngine and page-module helpers follow TYPO3's light and dark scheme on 13.4 and 14.3. Badges, icons, muted text, buttons, the selected template card and the loading spinners use core classes and tokens instead of Bootstrap classes that keep one colour or have no rules in the 14.3 backend (#69 by @CybotTM).
- The template cards in step 1 are a radio group: arrow keys move the selection, Space and Enter select, and screen readers announce each card's description. Arrow keys inside a step no longer slide the wizard past a locked Next button (#69 by @CybotTM).
- Enter that a control inside the step has already handled no longer advances the wizard: Enter in the image search only searches, and Enter on a template or image card only selects it (#72 by @CybotTM).
- After Next, Enter or the automatic advance in re-generate mode, focus moves to the first field of the new step, or to Next, Previous or Cancel when the step has no field, instead of staying on the page body (#78 by @CybotTM, fixes #77 reported by @CybotTM).
Answers and replies stay where they belong
- Going Back and Next again keeps the briefing title and answers; a title typed and cleared stays empty (#69 by @CybotTM).
- In re-generate mode, Back to the template step no longer jumps forward again and keeps the briefing edits (#74 by @CybotTM, fixes #73 reported by @CybotTM).
- A reply that arrives after the wizard was closed and reopened, or for a step or section the editor has already left, is dropped: it no longer moves, locks, fills or saves into the open wizard. Focus stays on Back after going back (#76 by @CybotTM, fixes #75 reported by @CybotTM).
Maintenance
- Both content-step renderers share one image section and intro; the wizard's behaviour is unchanged and a new end-to-end test pins the image section in structured and creative mode (#71 by @CybotTM).
Build/Scripts/runTests.sh -s functionalruns the 22 functional tests instead of reporting success with no test executed, and an empty test selection now fails the run. CI was not affected (#70 by @CybotTM, addresses #64 reported by @CybotTM).
Full Changelog: v0.3.15...v0.3.16
Installation
composer require netresearch/nr-landingpageSecurity
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-landingpage-0.3.16.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-landingpage-0.3.16.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.
v0.3.15
nr_landingpage 0.3.15 accepts nr-llm v0.38.0 and installs only on the TYPO3 long-term-support releases 13.4 and 14.3.
Changed
- nr-llm
^0.34 || ^0.35 || ^0.36 || ^0.37 || ^0.38: an installation with this extension can update to nr-llm 0.38. On a 0.x version,^0.37does not admit 0.38.0. (#68, @CybotTM) - Breaking for TYPO3 14.0 to 14.2: the extension requires TYPO3 13.4 LTS or 14.3 LTS. Installations on the non-LTS releases 14.0, 14.1 and 14.2 get no new versions; update TYPO3 to 14.3 first. (#67, @CybotTM)
- Dependency updates for GitHub Actions now come from Renovate only; the Dependabot configuration is removed. (#66, @CybotTM)
Full changelog: v0.3.14...v0.3.15
Installation
composer require netresearch/nr-landingpageSecurity
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-landingpage-0.3.15.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-landingpage-0.3.15.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.
v0.3.14
Changes
Accepts nr-llm 0.37, in #65 by @CybotTM. composer.json requires netresearch/nr-llm at ^0.34 || ^0.35 || ^0.36 || ^0.37, and ext_emconf.php declares nr_llm 0.34.0-0.37.99 to match. On a 0.x version ^0.36 does not admit 0.37.0, so 0.3.13 kept an installation from moving to nr-llm 0.37.0. Nothing else changes.
Installation
composer require netresearch/nr-landingpageSecurity
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-landingpage-0.3.14.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-landingpage-0.3.14.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.
v0.3.13
Highlights
nr-landingpage is licensed under GPL-2.0-or-later throughout, and it accepts netresearch/nr-llm 0.36.
Licence
The LICENSE file now holds the GNU GPL version 2 text instead of MIT, so the repository states one licence: GPL-2.0-or-later, the grant composer.json and CONTRIBUTING.md already declared. The code was previously published under MIT, which permits redistribution under GPL-2.0-or-later. Changed in #61 by @CybotTM, closing #60.
Dependencies
netresearch/nr-llm is accepted at ^0.34 || ^0.35 || ^0.36 (ext_emconf.php: 0.34.0-0.36.99). The range is widened, not moved: installations on nr-llm 0.34 or 0.35 keep working. Changed in #63 by @CybotTM.
Repository
.bestpractices.json provides evidence-backed answers for the OpenSSF Best Practices badge, including the test suites CI runs (#59, #62 by @CybotTM).
Full Changelog: v0.3.12...v0.3.13
Installation
composer require netresearch/nr-landingpageSecurity
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-landingpage-0.3.13.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-landingpage-0.3.13.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.
v0.3.12
Install this wherever netresearch/contexts is installed too. Until now that combination made every landing-page template record unopenable in the backend: /typo3/record/edit?edit[tx_nrlandingpage_domain_model_template][…]=edit answered 500, not for the field that broke but for the whole record.
What was wrong
RuntimeException 1483890332 — "Field controls must return an iconIdentifier" — from FieldControl.php:93. The two controls on system_prompt were never the cause: both hardcode an icon and both return an empty array for a new record, which the caller skips before the check. The renderType simply never resolved to them, and NodeFactory has one fallback for a renderType it does not know — UnknownElement, whose result is non-empty and carries no icon.
$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['nodeRegistry'] is a plain array keyed by integer. This extension used the placeholder block 1700000001–1700000005; netresearch/contexts uses 1700000001–1700000003. Two keys belonged to both, the ext_localconf.php loaded later overwrote the earlier entry, and nothing reported it — no exception, no log line, no deprecation. Measured on a real installation, contexts writes last, so optimizePrompt and testGenerate were gone before FormEngine looked for them.
Note the asymmetry: contexts registers its three as element renderTypes, so had it lost the collision the result would have been a warning box in its own forms. Losing it on the field-control side is an outage.
What changed
Five keys, fixed by @CybotTM in #57: the four nodeRegistry entries and the ContextMenu provider now use registration timestamps, and the file says why they are not round numbers. Node names, priorities and classes are untouched, so anything reading the registry by name is unaffected — the keys are indices nothing looks up.
The ContextMenu key moved although nothing collides with it today. It sat three lines above the ones that did, in the same placeholder block, and leaving it there would have left the next reader a round number to copy.
Upgrading
composer update netresearch/nr-landingpage. No configuration change, no migration, no database update.
Installation
composer require netresearch/nr-landingpageSecurity
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-landingpage-0.3.12.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-landingpage-0.3.12.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.
v0.3.11
Changes
- Merge pull request #56 from netresearch/release/v0.3.11
- chore(release): 0.3.11
- Merge pull request #55 from netresearch/chore/nr-llm-0.35
- docs: state the nr-llm range the extension now accepts
- fix(deps): widen the nr_llm range in ext_emconf.php too
- chore(deps): allow nr-llm 0.35 alongside 0.34
- chore(deps): update dependency phpat/phpat to ^0.11 || ^0.12 (#52)
- chore(deps): update dependency
@playwright/test to v1.63.0 (#51) - Merge pull request #1 from netresearch/renovate/configure
- Add renovate.json
- Merge pull request #50 from netresearch/fix/ignore-test-runner-artifacts
- fix: ignore the var/ directory the test runner leaves behind
Installation
composer require netresearch/nr-landingpageSecurity
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-landingpage-0.3.11.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-landingpage-0.3.11.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.
v0.3.10
Requires nr-llm 0.34
The netresearch/nr-llm floor moves to ^0.34, and ext_emconf.php with it — its upper bound is now 0.34.99 rather than 0.99.99, so the composer and TER install paths no longer disagree about everything above 0.34. By @CybotTM in #47.
nr-llm 0.34.0 has one breaking change: its backend modules left Administration for a shared AI section, and the container URL /module/nrllm is gone with no successor (ADR-183). This extension registers no module under that container and links to no nr-llm route, so the move reaches nothing here. Checked against the released 0.34.0 before the floor was raised: phpstan clean, 528 unit tests.
The documented requirement was never the real one
README.md, AGENTS.md and Documentation/Installation/Index.rst named netresearch/nr-llm ^0.4.0 — which means >=0.4.0 <0.5.0 and has therefore excluded the actual dependency for several releases, ^0.33 included. Nothing checks prose against composer.json, which is how it drifted. All three now state ^0.34.
docs/plans/2026-03-06-* still say 0.4.0 on purpose: they are dated design records of what was planned that day, not statements about what the extension requires now.
Installation
composer require netresearch/nr-landingpageSecurity
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-landingpage-0.3.10.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-landingpage-0.3.10.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.
v0.3.9
Changes
- Merge pull request #46 from netresearch/release/0.3.9
- chore(release): 0.3.9
- Merge pull request #45 from netresearch/chore/nr-llm-033
- build: require netresearch/nr-llm ^0.33
Installation
composer require netresearch/nr-landingpageSecurity
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-landingpage-0.3.9.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-landingpage-0.3.9.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.
v0.3.8
Changes
- Merge pull request #44 from netresearch/release/0.3.8
- chore(release): 0.3.8
- Merge pull request #43 from netresearch/chore/nr-llm-032
- build: require netresearch/nr-llm ^0.32
- Merge pull request #42 from netresearch/feat/caller-source
- feat: name this extension as caller source on every nr-llm call
Installation
composer require netresearch/nr-landingpageSecurity
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-landingpage-0.3.8.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-landingpage-0.3.8.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.
v0.3.7
Highlights
Accepts nr-llm 0.31, the release whose Analytics module breaks usage and cost down per calling extension. Landing-page generation is one of the more expensive things an editor can trigger — a briefing turns into a full page of content elements — so being able to see that spend separated from everything else on the installation is worth having. Note that this extension does not yet name itself on its calls, so its usage currently lands in the Unattributed bucket of that breakdown; annotating it is a follow-up (@CybotTM).
Upgrading
A patch release: a dependency's minor is not this extension's minor. No behaviour change, no API change. Requires nr-llm ^0.31.
Installation
composer require netresearch/nr-landingpageSecurity
All release artifacts are signed with Sigstore keyless signing.
Verify signatures
cosign verify-blob \
--bundle nr-landingpage-0.3.7.zip.sigstore.json \
--certificate-identity-regexp "https://github.com/netresearch/.*" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
nr-landingpage-0.3.7.zipVerify checksums
sha256sum -c checksums.txtSoftware Bill of Materials (SBOM)
SBOMs are provided in both SPDX and CycloneDX formats for supply chain transparency.