Skip to content

Releases: rtfirst/llms-txt

1.0.12

25 Apr 10:20
906d91a

Choose a tag to compare

Fixed

  • Bug: Pages located below a "Spacer" page (doktype = 199, "Trennzeichen für Menü") are now included in llms.txt. Previously the spacer row was filtered out by the SQL query, which suppressed all of its descendants (#2). Spacers themselves remain excluded from the output, matching the TYPO3 frontend menu behavior. Nested spacers are handled automatically.

Added

  • Functional test coverage for PageTreeService (spacer traversal, nested spacers, explicit page exclusion).
  • New Functional Tests job in CI matching the unit-tests matrix (PHP 8.2–8.4 × TYPO3 13.4 / 14.0, SQLite).

Pull requests

  • #3 — bugfix into develop
  • #4 — release into main

v1.0.11

22 Mar 21:47

Choose a tag to compare

Added

  • Feature: YAML frontmatter now includes real page timestamps — date shows the page creation date (crdate), lastmod shows the most recent modification date from content elements (tt_content); lastmod is omitted when identical to date

Improved

  • Only DeletedRestriction on timestamp queries (page already confirmed by TYPO3 routing)
  • Language-aware timestamps: translation overlay crdate/tstamp used for non-default languages; default-language content changes do not bleed into other languages' lastmod
  • Content element timestamps filtered by sys_language_uid for accurate per-language lastmod
  • Content timestamps (editorial changes) take priority over pages.tstamp (which can be updated by system operations)
  • Graceful error handling: database failures during timestamp fetching are logged and fall back to current date instead of crashing the response
  • LoggerInterface added to ContentFormatMiddleware for error observability

Full Changelog: 1.0.10...1.0.11

v1.0.10

22 Mar 16:11

Choose a tag to compare

Fixed

  • Bug: Include request path in cache key to differentiate plugin views (e.g., news list vs. news detail) on the same page

v1.0.9

21 Mar 17:11

Choose a tag to compare

Security & Bug Fixes

Security

  • Access control: Replace removeAll() query restrictions with selective restriction management — now properly respects fe_group, starttime, and endtime access controls on pages
  • Injection: Escape canonical URLs in YAML frontmatter, escape Markdown link syntax in page titles

Bug Fixes

  • Cache: Cache flush event now clears entire llms.txt cache (index + per-page Markdown), preventing stale .md content after page edits
  • TableConverter: Escape pipe characters in table cell content for valid Markdown tables
  • YAML: Frontmatter escaping now handles newlines, carriage returns, and tabs

Code Quality

  • Add LoggerInterface to AbstractContentConverter and PageTreeService — errors are now logged instead of silently swallowed
  • Use new FlashMessage() instead of GeneralUtility::makeInstance()
  • Remove redundant getSettings() call in LlmsTxtGeneratorService
  • Simplify CacheFlushEventListener (remove unused dependency)

Full Changelog: 1.0.8...1.0.9

1.0.8

21 Mar 14:41

Choose a tag to compare

Changed

  • Rename TYPO3 extension key from llms_txt to rt_llms_txt (Composer package name rtfirst/llms-txt remains unchanged)
  • Update all EXT:llms_txt/ references to EXT:rt_llms_txt/
  • Add explicit extension key to TER publish workflow
  • Update GitHub Actions to Node.js 24-compatible versions (checkout v6, cache v5)
  • Add .gitattributes to exclude dev files from TER archive

Version 1.0.6

03 Feb 18:57

Choose a tag to compare

Changes

  • Fix PHPStan and PHP-CS-Fixer issues for CI compatibility
  • Add declare(strict_types=1) to ext_emconf.php
  • Update phpstan.neon with correct vendor path and ignore rules
  • Add PHPStan ignore comments for TYPO3 13/14 compatibility
  • Update README with correct local development commands
  • Remove generated documentation temp files

Compatibility

  • TYPO3 13.0 - 14.x
  • PHP 8.2+

Version 1.0.5

02 Feb 19:22

Choose a tag to compare

Features

  • Improved Markdown output quality
    • Convert remaining HTML tags to Markdown (<a>, <br>, <strong>, <em>)
    • Decode HTML entities (&amp;&, &lt;<)
    • Strip remaining HTML tags after conversion
  • Make canonical URLs absolute in frontmatter
  • Use real page URLs in llms.txt examples instead of placeholders
  • Internal page links in .md files now point to .md version for consistent LLM navigation

Technical

  • Extend PHP version support to 8.2, 8.3, 8.4
  • Add new unit tests for link conversion

v1.0.4

01 Feb 18:30

Choose a tag to compare

Added

  • Unit tests for HeaderLinkEventListener

Changed

  • Update dev dependencies: phpstan ^2.1, phpstan-typo3 ^2.0, rector ^2.0
  • Apply Rector fixes (First Class Callable syntax)

Fixed

  • TYPO3 14 compatibility for HeaderLinkEventListener (use getContent()/setContent())
  • PHPStan errors for TYPO3 13/14 compatibility
  • GitHub repository URLs in composer.json

v1.0.3

01 Feb 15:42

Choose a tag to compare

Changes

Changes in 1.0.3

  • Add HeaderLinkEventListener for theme-independent header link injection
  • Fix header link not appearing when no API key configured
  • Convert relative links to absolute URLs in Markdown output
  • Add badges and support links to README and composer.json
  • Add API key protection mention to documentation

v1.0.2 - Rector Code Quality Fixes

31 Jan 20:34

Choose a tag to compare

Changes

  • Use instanceof ResponseInterface instead of !== null for type checks
  • Use || instead of or for boolean operations (better operator precedence)

Applied Rector rules:

  • FlipTypeControlToUseExclusiveTypeRector
  • LogicalToBooleanRector