v1.0.1
Fixed
- Binary indexer now emits canonical URLs instead of build-artifact URLs.
ContentExporterwrites exported HTML files in a nested directory structure mirroring the canonical URL (/recipe/cake/→recipe/cake/index.html) so Pagefind--sitederivesdata.urlidentical to the PHP indexer. Previously, flat{id}.htmlexports causeddata.url = /{id}.html— a path that 404s on the live site. Resolves the root cause behind #155 and closes #157. - AI summary citation URLs now prefer canonical
meta.urlover Pagefind file path. BothsummarizeResults()(WASM path) andbuildLLMContext()(JS fallback) now user.data.meta?.url || resolveUrl(r.data.url), matching the pattern already used in the result card renderer. Fixes #155. - Added
vendor/toarchive.excludeincomposer.jsonto prevent devvendor/from leaking into dist archives when installed via Composer path repositories.
Added
ContentExporter::urlToExportPath()— maps a canonical URL to the export file path Pagefind will crawl. Shared by all platform adapters.ContentExporter::countHtmlFiles()— recursive HTML file count, replacing flatglob('*.html')in adapters.ContentExporter::writeManifest()/readManifest()— ID-to-path manifest for incremental deletes in the nested layout.ContentExporter::deleteById()/deleteByUrl()— delete export files by item ID (manifest + flat fallback) or canonical URL.- Indexer URL parity test (
IndexerUrlParityTest) that joins fragments by stable item ID and assertsdata.urlequality, collision detection, andurlToExportPathmapping correctness. - Citation URL structural tests in JS test suite — locks the
meta.url ||fallback pattern in both summary builders.
Documentation
- Clarified independent versioning model. CLAUDE.md, CHANGELOG.md, and UPGRADE.md now state that minor and patch versions are released independently per package, with adapters pinning scolta-php via
composer.lockwithin their^1.xconstraint. Added a comment toscripts/check-version-sync.phpnoting it is a local-only major check.
Upgrade notes
Binary-indexer sites must run a full rebuild after upgrading. The export layout changed from flat {id}.html to nested directories mirroring canonical URLs. A stale index will retain the old /{id}.html URLs that 404 on the live site. The health-check warning added in #158 will surface a pre-fix index automatically.