Same index↔dataset misalignment swept across the intelligence handler — four more
/vectors/hybrid calls that paired workers_500k_v1 with filter_dataset ethereal_workers:
- similar-workers route (~2418)
- semantic role-discovery route (~2459)
- smart_search route (~2869)
- scenario worker-find (~3531)
Verified: no workers_500k_v1 index remains paired with the ethereal_workers dataset;
the 9 remaining refs are correctly aligned (workers_500k dataset) or pure RAG. Server
boots clean. Takes effect on next mcp-server restart.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Same index↔dataset misalignment as the /search fix (423400e), in three more paths that
pair the ethereal_workers SQL dataset with the workers_500k_v1 vector index:
- search_workers MCP tool
- match_contract MCP tool
- /match HTTP handler
All now default to ethereal_workers_v1 (same 10K id-space as the SQL table). Verified:
/match role=Forklift Operator state=IL returns only IL forklift operators (sql_matches 94).
rag_question / /ask left as-is — pure RAG, no SQL join, so no id-space to misalign.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The /search hybrid endpoint defaulted to index workers_500k_v1 (50K chunks, a
different worker set) while defaulting filter_dataset to ethereal_workers (10K SQL
rows). Same worker_id → different person in each, so the SQL state filter and the
vector rerank referred to different people: state='IL' surfaced a KY worker flagged
sql_verified:true. Aligned the default index to ethereal_workers_v1 (10K chunks, same
id-space as the SQL table). Verified: state='IL' now returns only IL workers.
Takes effect on next mcp-server restart. Sibling paths /match and the search_workers
tool have the same workers_500k_v1↔ethereal_workers misalignment (not touched here).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>