ADDITIONS
- search: optional per-request name-matching algorithms by @adamdecaf in #878 and #884
GET /v2/search?algorithm=, MCPsearch_entities, and GoSearchOpts.Algorithm- Default is unchanged: Jaro-Winkler (
jaro-winkler/ omitted) - Opt-in values:
soundex,soft-bidist,soft-bisim,editex,nsim,nsim-3,double-metaphone,beider-morse - Inner scorers (
soft-bidist,soft-bisim,editex,nsim,nsim-3) replace only the token pair metric. Phonetic options (soundex,double-metaphone,beider-morse) keep Jaro-Winkler and boost pairs whose encodings match - Beider-Morse is generic BMPM v1 only (not language-specific)
- Generated score matrix (markdown + CSV): https://moov-io.github.io/watchman/algorithm-comparison/
- feat: add PII-safe composite blocking keys for record linkage by @adamdecaf in #654
- Hashed hierarchical keys (name Soundex, government IDs, address prefixes, contact) for candidate blocking without storing raw PII in the index
- In-memory corpus uses government-ID and address-only keys; name search still uses the token inverted index
- Docs: https://moov-io.github.io/watchman/record-linkage/
IMPROVEMENTS
- ingest: cap POST /v2/ingest request body size by @adamdecaf in #877
- Default 32 MiB, override with
INGEST_MAX_BODY_BYTES
- Default 32 MiB, override with
- docs: Watchman is not designed for the public internet by @adamdecaf in 6844934
- docs: download URLs are operator configuration by @adamdecaf in 7070a31
- test: skip live OFAC search tests in short mode by @adamdecaf in #874
- fix: omit raw algorithm from unknown-algorithm errors by @adamdecaf in 52fb25e
- Avoids CodeQL
go/log-injectionon/v2/searcherror logs
- Avoids CodeQL
BUILD
- fix(deps): update module github.com/openrouterteam/go-sdk to v0.7.148 by @renovate in #869
- fix(deps): update module github.com/openrouterteam/go-sdk to v0.7.149 by @renovate in #873
- fix(deps): update module github.com/openrouterteam/go-sdk to v0.7.150 by @renovate in #883
Full Changelog: v0.66.3...v0.67.0