Releases: thegrowthproject/wp-llms-txt
Releases · thegrowthproject/wp-llms-txt
Release list
v1.3.4
What's New
Bug Fix
- Root-only /llms.txt: Fixed issue #30 where
/blog/post-slug/llms.txtincorrectly returned home page content instead of 404. The/llms.txtendpoint now only matches at the site root.
Generator Improvements (llmstxt.org compliance)
- Posts limit filter: Added
tgp_llms_txt_posts_limitfilter (default 50, use -1 for unlimited) - Category exclusion: Added
tgp_llms_txt_exclude_categoriesfilter to exclude categories by slug - Post dates: Each post listing now includes its publish date
- Last Updated timestamp: Header now includes
Last Updated: YYYY-MM-DD - Cleaner format: Simplified header to match llmstxt.org spec
Documentation
- Added new filter documentation to
docs/HOOKS.md
v1.3.3
What's New
Code Quality (Issue #26)
- YAML Escaping: Fixed Frontmatter to properly escape YAML 1.2 special characters
- Markdown Title Escaping: Sanitize titles to escape special markdown characters
- N+1 Query Fix: Batch loading post meta with
update_postmeta_cache() - Cache Invalidation: Transient caching with automatic invalidation on post updates
- RateLimiter Extraction: Extracted rate limiting into dedicated class (SRP)
- Redis/Memcached Support: Rate limiter uses WordPress object cache
CI/CD Improvements
- Blacksmith Runners: Migrated all workflows to faster Blacksmith runners
- PHPUnit Fix: Removed coverage config that caused CI warnings
- E2E Tests: Fixed wp-env setup for reliable endpoint testing
Testing
- 140 PHPUnit tests (up from 78)
- Comprehensive MarkdownConverter test coverage
- E2E tests for
/llms.txtand/*.mdendpoints
Documentation
- Added
docs/HOOKS.mdwith all filters and actions - Added
composer auditto CI pipeline - Track
composer.lockfor reproducible builds
Housekeeping
- Removed
.claudefolder (consolidated in private repo) - Added
.claude/to.distignore
v1.3.2
Bug Fix
Critical fix: Generator class had private constructor preventing /llms.txt endpoint from working.
Fixed
- Made
Generatorconstructor public soEndpointHandlercan instantiate it for serving/llms.txtrequests - The PSR-4 migration (v1.3.0) incorrectly made the constructor private
This fixes the "critical error" on /llms.txt endpoints while .md endpoints continued to work.
v1.3.1
Bug Fix
Critical fix: Include Composer autoloader in release package.
Fixed
- Release workflow now runs
composer install --no-devbefore packaging - Removed
vendor/from.distignoreso autoloader is included in release ZIP
This fixes the "Failed to open required vendor/autoload.php" error when installing the plugin.
v1.3.0
What's New
Features
- PSR-4 Autoloading: Migrated to PSR-4 namespaces (
TGP\LLMsTxt\*) for better code organization - Static Initialization Pattern: All classes now use
Class::init()with private constructors - Error Logging Infrastructure: New
Loggerclass with error/warning/debug levels and action hooks for external integrations (tgp_llms_txt_error,tgp_llms_txt_warning) - Rate Limiting: Added IP-based rate limiting (100 requests/minute) for public endpoints with standard headers
Security
- CSS color and gradient validation for block rendering
- Manifest structure validation for plugin updates
- Input sanitization for all proxy headers
Developer Experience
- Comprehensive PHPUnit test coverage (78 tests, 177 assertions)
- E2E testing with Playwright
- WordPress Coding Standards compliance
Breaking Changes
- Class names changed from
TGP_Class_NametoTGP\LLMsTxt\ClassName - Requires PHP 8.2+
v1.2.0
What's New
Blog Filters Blocks
Three new blocks for filtering blog archives with Interactivity API:
tgp/blog-filters— Parent container with state managementtgp/blog-category-filter— Category pills with active state stylingtgp/blog-search— Search input with icon and clear button
Self-Hosted Plugin Updates
Automatic updates from GitHub releases using native WordPress hooks. No external dependencies required.
Testing Infrastructure
- PHPUnit with Brain Monkey (38 tests)
- Jest with Interactivity API mock (21 tests)
- Playwright E2E tests
- GitHub Actions CI for all tests
Shared Helper Classes
TGP_Button_Block_Renderer— Consolidated button renderingTGP_Pill_Block_Renderer— Filter pill renderingTGP_SVG_Sanitizer— Centralized SVG sanitization
New Filters
tgp_llms_txt_description— Customize llms.txt site descriptiontgp_llms_txt_contact_url— Customize contact page pathtgp_llms_txt_pages— Customize page listings
Breaking Changes
CSS class names migrated to BEM pattern:
- Before:
.tgp-copy-btn,.tgp-btn-icon - After:
.wp-block-tgp-copy-button,.wp-block-tgp-copy-button__icon
Requirements
- WordPress 6.5+
- PHP 8.2+
Full Changelog
See CHANGELOG.md
v1.1.0 - Block Modernization
Block Modernization
This release modernizes the plugin's Gutenberg blocks using WordPress 6.5+ APIs.
Changed
- BREAKING: Requires WordPress 6.5+ (was 5.0+)
- Migrated copy button to WordPress Interactivity API for reactive state management
- Copy button now fetches directly from
.mdendpoint (faster, cached) instead of admin-ajax.php - Replaced custom color/style attributes with WordPress Block Supports API
- Buttons now inherit theme styles automatically (Brand, Dark, Light, Tint variants)
- Split
llm-buttonsblock into separatecopy-buttonandview-buttonblocks
Removed
includes/class-ui-buttons.php(AJAX handler no longer needed)blocks/llm-buttons/editor.css(styles now from Block Supports)- Custom
backgroundColor,textColor,borderRadiusattributes (replaced by Block Supports)
Fixed
- Button styles now match theme design system
- Improved performance by eliminating admin-ajax.php overhead
Requirements
- WordPress 6.5+
- PHP 8.2+
v1.0.0 - Initial Release
🎉 Initial Release
Features
/llms.txtendpoint with site index following llmstxt.org specification.mdendpoints for individual pages and posts- Gutenberg block for copy-to-clipboard functionality
- YAML frontmatter for markdown files (title, description, date, author, tags)
- Gutenberg to markdown conversion (headings, lists, tables, links, emphasis, code)
- Cache headers for performance (1 hour)
Developer Experience
- WordPress Coding Standards (PHPCS) with CI
- GitHub Actions for linting and releases
- Automated plugin zip builds on release
- Issue and PR templates
- Contributing guidelines
Requirements
- WordPress 5.0+ (Gutenberg)
- PHP 8.2+