Scolta 1.0.0-rc4
Scolta 1.0.0-rc4
Fourth release candidate for Scolta 1.0 — AI-powered search for Drupal, WordPress, and Laravel.
Highlights
Fixed
- Expand-query prompt disambiguation — Rule 9 now uses the site's domain context to disambiguate multilingual queries before falling back to generic interpretation. A German query like "Zweig" on a Git docs site is now expanded to branch-related terms instead of famous authors.
- Composer archive excludes tests/ —
composer.jsonarchive.excludeprevents ~4 MB stemmer corpus and fixtures from shipping in dist archives. - API error handling —
AiClientnow throwsApiKeyInvalidException(401) andRateLimitException(429 +Retry-Afterheader) instead of wrapping all upstream errors as generic 503. - E2E test race condition —
uniqid()collision on multi-vCPU CI fixed by appendinggetmypid()to state-directory names. - Foreign language "No Results Found" flash — UI now suppresses premature empty-state display while AI expansion is still translating/expanding the query.
- Follow-up queries resolve numbered result references — "#6", "the third one", etc. now map to the correspondingly numbered entry in search context.
- Sort-intent prompt restructured as a 4-step decision sequence to eliminate false positives (discovery qualifiers) and false negatives (adverb+participle recency forms).
Added
showAttributionconfig option — opt-in "Powered by Scolta" display (defaultfalse), per WordPress.org Guideline 10..gitattributesexport-ignore — dev files (tests/, .github/, benchmarks/, scripts/) excluded fromgit archivedistributions.- AI Overview metadata enrichment — structured metadata per result with sort/filter indicators in LLM context.
- Generic sort and filter prompt infrastructure —
sortableFieldDescriptions,filterFields,filterFieldDescriptionsconfig properties. - Memory pressure handling —
gc_mem_caches()on PHP 8.3+, RSS-based 75% threshold voluntary restart. - Sort override subject filter — parallel subject-only search intersects with sorted results to prevent irrelevant items.
- Pagefind native sort — sort hints now use Pagefind's index-level sort instead of client-side reranking.
- Auto date sortable field —
ContentItem::$dateautomatically included in sort attributes. ContentItem::cloneWith()— safe field-level overriding without silent field loss.- Multi-value filter support in
PagefindHtmlBuilder.
Full Changelog: https://github.com/tag1consulting/scolta-php/blob/v1.0.0-rc4/CHANGELOG.md
⚠️ This is a release candidate. Please report any issues at https://github.com/tag1consulting/scolta-php/issues