Repository navigation
6.2.1
JSON array full-text indexing
#FullTextIndex now supports array fields with .each, including multiple text fields, optional arrays and nested arrays:
#FullTextIndex<Self>(
\.title,
.each(\.chapters, fields: \.title,
.each(\.paragraphs, fields: \.text, \.translation)),
name: "book_search"
)Each text leaf has an independent search column. Array order is preserved; unselected metadata and missing/null values are excluded. Original JSON remains unchanged, and no persisted search-text field is required.
SwiftStore registers the versioned swiftstore_fts_text_v1 scalar function on every connection. Existing external-content views and triggers use it for local/remote writes, rebuilds and integrity checks. Migration generation and checking understand the new array metadata. Adding or changing an index still requires a new migration; existing snapshots remain compatible.
Ordinary SQLite tools can read the original business tables, but operations involving the new views or triggers require the same function to be registered.
Validation
The implementation passed 373 Swift Testing tests and 46 XCTest tests before release. The release workflow separately verifies CloudKit synchronization, builds the macOS arm64 CLI, and downloads and verifies the published archive and SHA256SUMS.
Full Changelog: 6.1.3...6.2.1
Includes a macro code-generation type-checking compatibility fix for the release CI compiler. The 6.2.0 CLI release was not published because its CI build failed.