Skip to content

Releases: HarperFast/fulltext

@harperfast/fulltext v0.8.0

Choose a tag to compare

@kylebernhardy kylebernhardy released this 30 Oct 18:21
bb4fac1

Published to npm: @harperfast/fulltext 0.8.0 and all four matching native packages are available; latest points to 0.8.0.

Release correction: before any npm publication, Kyle approved moving v0.8.0 from the initial release commit to the supported-runner repair. Only two macOS runner labels changed; application sources are identical. The initial packaging attempt encountered GitHub's macOS 14 brownout. Original benchmark assets were preserved before restarting.

Compatibility: rebuild existing string-metadata indexes

Indexes with string filterFields need rebuilding when upgrading from 0.7.0. Version 0.8.0 adds raw fast fields for metadata sorting and aggregations. Incompatible indexes fail closed with E_IDENTITY_MISMATCH; do not edit identity sidecars to bypass the check.

Drain work and close every reader and writer, retire the old index with resetNativeFullTextIndex(), and rebuild from authoritative records using a new generation. Publish source-checkpoint coverage only after rebuilding, then verify reopen, filters, sorting and aggregations before cutover. Numeric/Boolean-only indexes retain compatibility when the rest of their configuration is unchanged. Always deploy matching JavaScript and native package versions.

See the metadata migration guide for upgrade, downgrade and recovery procedures. Earlier analyzer migration requirements still apply to upgrades from 0.6.x.

What changed

Tantivy remains 0.27.0. Distance-two fuzzy matching remains preview with no hard process-memory bound; qualify corpus and concurrency before exposing it to callers. Deadlines remain cooperative. Phrase slop is deferred; no unreleased Tantivy patch is included.

Verification and remaining uncertainty

The repaired release commit passed all 17 main CI jobs across Linux x64/arm64, macOS arm64 and Windows x64, including Node 22.18, 24 and 26. The publish workflow built all four native packages and the JavaScript facade, passed packed-consumer installs and public examples on all four platforms, and published all five packages with provenance.

Public registry checks verified every 0.8.0 package and the root latest dist-tag. A separate clean npm installation on macOS ARM64 reports wrapper 0.8.0 / Tantivy 0.27.0, with all nine shipped examples passing. The release benchmark workflow passed, and all eight Linux benchmark result files are attached.

Historical Windows stalls and sustained-memory qualification remain tracked in Qualify remaining native metadata collector resource tradeoffs. Passing CI does not establish their cause or production memory headroom.

Full changelog

Comment generated by kAIle (GPT-6)

@harperfast/fulltext v0.7.0

Choose a tag to compare

@kylebernhardy kylebernhardy released this 27 Oct 20:47
0b56087

Compatibility: rebuild existing indexes

Upgrading from 0.6.x requires an index rebuild. Version 0.7.0 embeds Tantivy 0.27.0, whose English stemmer changes some indexed terms. Existing indexes are rejected with E_IDENTITY_MISMATCH before search or mutation, even when the public analyzer remains english@2.

Drain and close readers and writers, retire the old index with resetNativeFullTextIndex(), then rebuild from authoritative source records. Publish checkpoint coverage only after rebuilding. Before downgrading, retire the 0.7 index using the 0.7 reset API and rebuild with 0.6.x. Do not edit identity sidecars to force compatibility. See Upgrading from 0.6.x.

What changed

  • Upgraded the embedded engine to Tantivy 0.27.0 and added explicit persisted analyzer compatibility checks and safe retirement/rebuild handling.
  • Updated search collectors and shared version hydration, with native prefix automaton reuse and retained full-fuzzy dictionary parity.
  • Added a runnable catalog-search example, relevance fixtures, migration guidance, and hydration/trace benchmark profiles.

The public analyzer name and query API remain unchanged. Relevance scores may differ between engine versions; continuation tokens remain tied to their reader instance. Applications continue to own source records, authorization, and rebuilding their derived indexes.

See Upgrade fulltext to Tantivy 0.27 with safe index rebuilds.

Verification

Main CI and the publish workflow passed on Linux x64/arm64, macOS arm64, and Windows x64. All four native packages passed packed-consumer installs and public examples before npm publication. A separate clean npm installation on macOS ARM64 reports wrapper 0.7.0 / Tantivy 0.27.0 and passes every shipped example. The release benchmark workflow passed; all eight Linux benchmark result files are attached.

Full changelog

Comment generated by kAIle (GPT-6)

@harperfast/fulltext v0.6.0

Choose a tag to compare

@kylebernhardy kylebernhardy released this 18 Oct 17:06
5178f35

What changed

  • Added searchPage() for ranked full-text, prefix, fuzzy-prefix, and Boolean results beyond the ordinary 10,000-hit window and 100-hit autocomplete limit.
  • Added authenticated continuations tied to the query and retained reader snapshot, exact snapshot totals, bounded page collection, and traversal deadline checks.
  • Documented query and resource limits, reader cleanup, and integration requirements. Existing search() limits remain unchanged.

See Add bounded snapshot traversal for full-text and autocomplete results.

Compatibility and operating considerations

  • Native ABI 9 and query API 4 require matching 0.6.0 facade and native packages. No analyzer or index-data rebuild is required by traversal.
  • Direct Rust SearchRequest values now require traversal and after. Engine::search enforces the checked 10,000-hit ordinary offset window.
  • Keep a dedicated reader open without reloading while traversing its original snapshot. Close it when finished or expired; retained snapshots can keep old index files on disk. Continuations cannot move between handles or processes or survive a restart.
  • Each page scans matching documents again. Bound cumulative work and concurrent readers; deadlines cannot interrupt query construction or every Tantivy operation.
  • Applications remain responsible for current authorization, source-record/version checks, and cursor routing and expiration. Harper integration is separate.

Verification

Local checks passed, including 250 Rust/Node/worker/consumer checks, optimized concurrency tests, traversal qualification, dependency checks, and documentation verification. PR CI passed on Linux x64/arm64, macOS arm64, and Windows x64. The release workflow separately rebuilds and verifies the exact platform packages before npm publication.

Full changelog

Comment generated by kAIle (GPT-6)

@harperfast/fulltext v0.5.0

Choose a tag to compare

@kylebernhardy kylebernhardy released this 01 Oct 20:44
a162f80

What's Changed

Full Changelog: v0.4.0...v0.5.0

@harperfast/fulltext v0.4.0

Choose a tag to compare

@kylebernhardy kylebernhardy released this 30 Sep 22:54
532add3

What's Changed

Full Changelog: v0.3.0...v0.4.0

@harperfast/fulltext v0.3.0

Choose a tag to compare

@kylebernhardy kylebernhardy released this 27 Sep 03:25
16f5066

What's Changed

Full Changelog: v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@kylebernhardy kylebernhardy released this 26 Sep 23:36
cdc3d1b

Comment generated by kAIle (GPT-6 Astra)

What's Changed

Full Changelog: v0.1.2...v0.2.0

v0.1.2

Choose a tag to compare

@kylebernhardy kylebernhardy released this 24 Sep 19:22
0129cd4

What's Changed

Full Changelog: v0.1.1...v0.1.2

v0.1.1

Choose a tag to compare

@kylebernhardy kylebernhardy released this 24 Sep 16:26
6fb73c7

What's Changed

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@kylebernhardy kylebernhardy released this 23 Sep 20:13
58d770a

What's Changed

New Contributors

Full Changelog: https://github.com/HarperFast/fulltext/commits/v0.1.0