Changes for Koha libraries

RustSearch release notes

Dated fixes and setup changes, newest first. These updates retain version 0.6.0; the KPZ filename and checksum identify the exact build. A newer plugin upload alone does not update the server integration.

Latest package

0.6.0 — general update guidance and compatible updater correction

· Build afb945d8efb5

The plugin’s Update RustSearch section now gives reusable instructions for updating the engine and plugin. Release-specific fixes and incident details belong in these dated release notes.

Validated with 254 Python tests and 1,671 Perl assertions. The unchanged engine matches the previously validated ARM64 and x86-64 source provenance. The separately reported Z39.50 save HTTP 500 remains unresolved.

Earlier package · retained in this release

0.6.0 — staff keyword barcode repair

· Build c868bd7b0cab

Repairs a missing barcode result in general staff keyword search when explicit Barcode search already finds the item. The simple keyword path now searches the barcode projection already present in schema 7.

Portable ARM64 and x86-64 builds passed the 77 native HTTP checks, including barcode regressions, and the 31 optional API checks on each architecture. The Configuration page now distinguishes engine updates from plugin-only refreshes.

The separately reported HTTP 500 while saving a Z39.50 record is still under investigation and is not claimed fixed by this package.

Earlier package · retained in this release

0.6.0 — optional OpenSearch API and Swagger

· Build 75037fe2d36e

An additional, experimental interface for trusted local applications. OpenSearch clients can run the supported read-only searches and counts against the existing RustSearch bibliographic index. Native Koha integration and the index schema stay unchanged.

API checks passed on ARM64 and x86-64 using the official OpenSearch Python client 3.2.0. Enablement requires an engine refresh and a separate administrator opt-in; uploading the KPZ alone does not enable it.

Earlier package · retained in this release

0.6.0 — larger Koha result pages

· Build 31c1a0e8b34a

Fixed staff and OPAC searches failing with “Invalid pagination parameters” when Koha requests more than 100 records per page. The adapter collects the requested page in native requests of at most 100 records, within the supported 10,000-result window.

Update the existing plugin; do not uninstall. Upload the new KPZ and run its bundled setup with --existing-engine on a compatible schema-7 server. No engine rebuild or reindex is needed. If search is currently restored by a 20-result page-size workaround, keep that setting until the update completes.

Verified with 1,668 Perl assertions and real Koha searches at 20, 200 and 500 records per page, including later pages and ID/order comparisons. The earlier performance optimizations and activation guard remain included.

Download pagination-fix KPZ · SHA-256 checksum · Update instructions

Earlier package · retained in this release

0.6.0 — schema-7 activation and update repair

· Build 08e6965757cb

Update in place; do not uninstall. Upload the new KPZ. If the check reports a compatible local engine, run the same bundled command with --existing-engine instead of --check-only. The read-only check does not apply changes. Schema-6 servers need coordinated migration.

Repair instructions · Download corrected KPZ · SHA-256 checksum

Verified with 1,631 Perl assertions, targeted activation/update/integrity tests and checks of the bundled source manifest. Existing native engine optimizations are retained.

Earlier package · retained in this release

0.6.0 — bounded item lookup and text normalization

· Build ebed7eb6b4f2

In local synthetic measurements, warm item-ID latency fell about 97% at 150,000 items; at one million items the bounded fallback limited the gain to about 20%. These are native-handler measurements, not a whole-import or browser speed claim. Published historical benchmark charts are unchanged.

Install the engine change

Fresh setup builds the bundled engine when missing. Existing libraries must rebuild and refresh the native executable with a coordinated backup/probe/restart procedure. A KPZ upload or --existing-engine refresh alone preserves the older executable. Compatible schema-7 indexes do not need a full reindex for this update. Batch sizes, schedules and engine selections are unchanged.

Earlier package · retained in this release

0.6.0 — search while indexing

· Build 45c1cad66db6

Apply to an installed library

Upload this KPZ without uninstalling. To enable OPAC using the updated plugin and reload Plack, replace INSTANCE in the paths and final argument with the library’s instance name:

sudo koha-shell -c 'perl -I/var/lib/koha/INSTANCE/plugins -MKoha::Plugin::Com::LightwaveLibrary::RustSearch::OpacActivation -MJSON::PP -e "print JSON::PP::encode_json(Koha::Plugin::Com::LightwaveLibrary::RustSearch::OpacActivation->request)"' INSTANCE
sudo koha-plack --reload INSTANCE

SELECT RUSTSEARCH IN SEARCHENGINE to use the current index. No full reindex or catalog changes are required. The normal --existing-engine refresh also installs this behavior in the protected worker copy.

Verified with pending work and ten retrying decoding errors. Historical behavior described below is superseded by this update.

0.6.0 — protected multi-tenant setup

· Build a393940d4f77

Updating an existing library

  1. Upload the latest KPZ through that library’s Koha plugin manager; do not uninstall the existing plugin.
  2. Open the plugin’s Configuration page and follow its updated SSH instructions. For a compatible schema-7 engine, use the existing-engine refresh command. For an unfinished first installation, rerun normal setup for that instance.
  3. Check indexing status and readiness, then test staff and OPAC searches. SELECT RUSTSEARCH UNDER ADMINISTRATION > SEARCHENGINE TO USE THE CURRENT INDEX. Indexing completeness is diagnostic; the separate OPAC flag validates visibility enforcement.

The compatible refresh reuses the engine binary and indexes and does not request a full reindex. Older or incompatible indexes require a separate migration. A failed setup can leave earlier steps installed; keep its log and backup paths.

Using an earlier extracted setup folder? It still contains the old installer. Use the newly uploaded KPZ’s setup guide to extract and run the corrected bundle.

Verified with 249 Python tests, 1,618 Perl assertions and a full setup run against a protected tenant plugin directory.

0.6.0 — OPAC activation and engine switching

· Earlier build d8d8ce412ce6; included in the latest package

0.6.0 — tenant setup and optional authorities

· Included in the latest package

Installation, upgrades and validation details

Pagination repair — build 31c1a0e8b34a: update the existing plugin; do not uninstall. Larger Koha pages now use bounded native requests instead of failing above 100 results. Run the bundled server setup before SELECTING RUSTSEARCH IN SEARCHENGINE. Compatible schema-7 engines use --existing-engine; schema 6 requires coordinated migration. The corrected activation guard refuses incompatible engines. Repair instructions.

The latest build adds bounded item-ID lookup and faster ASCII normalization. Existing installations need an engine binary refresh; a KPZ upload alone does not update the executable. Performance update and upgrade details.

Release acceptance passed for the documented Koha MARC21 profile on ARM64 and x86-64. Validate your library’s catalog and settings in staging before production. Historical benchmark snapshots remain labeled as measurements, not live telemetry.

These notes describe packaged changes, not live server telemetry. Published benchmark statistics retain their saved measurements. See setup, migration and limits for the supported profile. When RustSearch is selected, searches execute in Rust without automatic fallback to another engine.