Skip to content

2.0.0

@claude claude tagged this 30 Apr 11:00
Major redesign for The Archive v2 search architecture.

- Expression is now a Sendable enum (.anything, .contains, .not, .and,
  .or, .keyValue) instead of a protocol + node structs.
- ExpressionEvaluator protocol + iterative evaluate(_:with:) replace the
  per-node isSatisfied(by:) API.
- StringContainmentEvaluator ships as the built-in full-text backend.
- New .keyValue case + tokenization for key:value and key:"quoted value"
  patterns; \key:value escapes back to plain .contains. keyValueNodes(in:)
  lets callers inspect the tree for index dispatch.
- Iterative parser and evaluator; recursion-limit config removed.
- Swift tools 6.2; minimum platform macOS 13.

Source-breaking for any external Expression conformer or callers of
isSatisfied(by:) / StringExpressionSatisfiable / CStringExpressionSatisfiable.
Assets 2
Loading