Tags give the ability to mark specific points in history as being important
-
1.0.0-beta4
83a570fd · ·1.0.0-beta4 — Drupal 12 compatibility A compatibility release. No new features, no configuration or schema changes, no update hooks — a drop-in upgrade from 1.0.0-beta3. The module declared Drupal 12 support but had never been run against a Drupal 12 codebase, and was wrong in two hard ways: - The status report fataled. hook_requirements() used the REQUIREMENT_* constants, which Drupal 12 removed, so /admin/reports/status died with "Undefined constant" on any Drupal 12 site with Pagefind enabled. - The module could not be installed. composer.json pinned guzzlehttp/guzzle ^7.0 and symfony/process ^6 || ^7 while Drupal 12 ships Guzzle 8 and Symfony 8, so "composer require drupal/pagefind" refused to resolve. Both are fixed. Requirements reporting now uses hook_runtime_requirements() with the procedural hook behind behind a small version-bridging service; and a set of Drupal 12 test-suite changes landed (mandatory #[RunTestsInSeparateProcesses], the removed 'sequences' table, the shortcut module leaving core, and PHPUnit 12's mock-without-expectation notices). Drupal.org CI was also never running its next-major jobs: OPT_IN_TEST_NEXT_MAJOR only makes them exist, and they sat on when:manual. They now run on push, which is what caught the last two defects in this release. Verified: Drupal 12.0-dev / PHP 8.5 and Drupal 11.4.4 / PHP 8.4 — Kernel 156 tests / 1740 assertions, Functional 39, PHPStan level 8 and PHPCS clean on both; frontend 54/54; drupal.org pipeline 941193 green across all 14 jobs, verified per job. Still supports Drupal 10.3, 11, and 12 on PHP 8.1+.
-
1.0.0-beta3
18cf66ef · ·Pagefind Search 1.0.0-beta3 An internal-architecture release: no new features, no configuration or schema changes, and no visible behavior changes beyond the fixes listed below. Existing sites upgrade with no update hooks to run. Refactoring (why this release exists) - The reindex sequence (clear staging, enumerate, stage, build, clear the synonyms flag) now has a single owner, the pagefind.reindexer service. The dashboard batch, Setup Wizard, Drush commands, cron sweep and queue worker are thin adapters over it. - The React display app is split into an exported, testable component with an injectable search engine; 15 component regression tests now pin the accessibility behaviors that previously shipped regressions (keyboard shortcut, rapid load-more, focus restoration, live-region precedence). - The pagefind_display string grammars (filters, sorts, columns) are owned by one value object on the PHP side; the browser now receives pre-parsed filter config (with a fallback for cached pages). - The search page and search block build their identical payload through one service; the '/search' default now exists in exactly one place. - The module's views ship as importable config in config/optional. - Display path and machine-name rules are shared by the Setup Wizard and the display form via one validator. Fixes - A display can no longer be created at the configured search page path through the display form (the wizard already rejected this). - The dashboard reindex no longer stages unpublished non-translatable entities only to have them access-filtered and deleted again. - The cron synonym re-stage sweep honors the configured batch size instead of a hardcoded chunk of 50. - Multisite URL validation now sees the same normalization that saving applies. Verified on 18cf66e: drupal.org pipeline 923533 green across all jobs, checked per job (composer, composer-lint, phpcs, phpstan, stylelint, eslint, cspell, phpunit). Locally: Kernel 156 tests / 1739 assertions, Functional 39 tests / 430 assertions, PHPStan level 8 clean, PHPCS clean, vitest 54 tests. Bundle verified byte-identical to a fresh build from pagefind-react-ui 1.0.0-beta3. Known limitations (unchanged from 1.0.0-beta1) - Accessibility conformance remains a build target, not an audited claim; no runtime assistive-technology pass has been performed. - Promoted results and multisite collections are React-display only.
-
1.0.0-beta2
994e0d17 · ·1.0.0-beta2 Adds the Drush 13 fix: pagefind:index is invokable again. All three Drush commands now register through #[CLI\Command] attributes instead of docblock annotations, so Drush's legacy parser is out of the path. Also carried since beta1: configurable index_timeout (default 3600, 0 = unlimited) feeding both the binary run and the lock TTL, phpcs and eslint compliance, and a guard against a nullable EntityTypeInterface.
-
1.0.0-beta1
8b6ce38a · ·Pagefind Search 1.0.0-beta1 Feature-complete for 1.0.0. Beta because the accessibility work has not yet been verified at runtime and the Setup Wizard has not yet been exercised by a human outside the test suite. New in this release - Setup Wizard: a guided path from install to working search at /admin/config/search/pagefind/setup. The dashboard and help text now funnel first-run users into it. - Multisite collections: merge another site's remote Pagefind index into React search displays. - Synonyms: content is automatically re-staged via cron when synonyms change, with a dashboard call-to-action. - Promoted results (best bets) on React search displays, rendered as a pinned featured card above organic results. - Staging performance: synonym groups are memoized and the entity cache is reset per Drush chunk. Hardening - WCAG 2.1 AA remediation across the React displays, CSS, legacy template and admin forms. See ACCESSIBILITY.md for scope and limits. - Operational truthfulness: honest Drush exit codes, hook_requirements health checks, real logging on failure paths. - Cross-process index build lock, build timeout, and index-removal propagation. - 17 new documentation files for site builders and developers. Known limitations - Accessibility conformance is a build target, not an audited claim. No browser, screen-reader or automated axe pass has been run. Do not treat ACCESSIBILITY.md as a VPAT or Section 508 conformance statement. - The legacy web-component search surface does not support promoted results or multisite collections; both are React-display only. - The Setup Wizard is new in this release and has limited real-world use. Verified on 8b6ce38: drupal.org pipeline 904898 green across all jobs (composer, composer-lint, phpcs, phpstan, stylelint, eslint, cspell, phpunit). Locally: Kernel 128 tests / 1450 assertions, Functional 39 tests / 429 assertions, PHPStan clean, PHPCS clean. Bundle verified rebuilt byte-identical from pagefind-react-ui 1.0.0-beta1 (af317fc).
-
1.0.0-alpha2
0d5ee438 · ·Pagefind Search 1.0.0-alpha2 Bugfix release: settings now save correctly on Drupal cores without (batch size, ranking weights, booleans) are cast to their config-schema primitive types on save. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
-
1.0.0-alpha1
d0ab2615 · ·Pagefind Search 1.0.0-alpha1 First alpha release: client-side, WASM-powered static search for Drupal. Drupal 10.3/11/12, PHP 8.1+. PHPCS/PHPStan-clean, security-hardened binary handling, OOP #[Hook] implementation. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>