v1.0.2
Fixed
- Browsers no longer serve a stale
scolta.js/scolta.cssafter a deploy. Root cause: the search Blade component emitted the published asset URL viaasset('vendor/scolta/scolta.js')with no version or hash at all, so the URL was byte-identical across deploys and HTTP caches kept serving the old file. The asset URLs now append?v=filemtime(public_path(...))(guarded by the existingfile_existscheck), a token that changes whenever the published file changes, so a normal reload picks up fresh JS/CSS. AddedAssetCacheBustingTest(behavioral) plusBladeComponentTestcoverage asserting the rendered URLs carry a non-empty?v=token derived from the asset mtime.
Added
expand_subword_deny_listscoring config (default empty). Reads fromSCOLTA_EXPAND_SUBWORD_DENYLIST(comma-separated). Guard-only veto list for the scolta-php sub-word query-term exemption (scolta-php#156 follow-up): words listed here are never auto-exempted from the sub-word frequency guard even when the user types them, so a typed-but-generic word (e.g.hoton a recipe site) cannot re-flood results. Unlikecustom_stop_wordsthis does not affect relevance scoring or query tokenization; listed words stay searchable and scorable.expand_subword_max_frequencyscoring config (default0.05). Threads through to the JS scoring config for the scolta-php sub-word frequency guard (scolta-php#156) — a multi-word expansion term's constituent words are searched on their own only when below this corpus frequency, restoring broad-query recall while blocking high-frequency noise. Also addedcross_list_bonus(0.05) to the published config.
Changed
- Opened 1.0.2-dev development cycle.
- Scoring default tuning (matches scolta-php):
title_match_boost1.0→2.0,recency_boost_max0.5→0.25in the publishedconfig/scolta.php. - Updated bundled scolta-php dependency to 1.0.2. The committed
composer.lockpin moves from 1.0.1 to the 1.0.2 Packagist release, so thescolta.jsserved from the dependency now ships the #156 frequency-guard follow-ups (Fix A/D typed-query-term exemption +expand_subword_deny_list) and the reverted query-word-importance line. - Release archive cleanup now strips all vendored
*.neon/*.dist/*.logdev-config files. The build-stagefindglob only removedphpstan.neon*, so newer transitive dependencies shipping other.neonfiles (e.g.nesbot/carbon'sextension.neon) survived cleanup and tripped thevalidate-zipdisallowed-extension guard, leaving the release CI red. The cleanup glob is now a superset of the validator's denylist, so the archive stays clean andvalidate-zippasses.
Note: scolta-laravel serves
scolta.jsdirectly from the scolta-php dependency (no committed copy), so the frequency-guarded build ships automatically once the scolta-php dependency is updated to the release that contains it. This PR adds the config plumbing so the new control is wired and ready.