feat: vector provider identity is a required name field (hnsw-js), rendered [vector-index:<name>]
Reconciles the vector-index rename to the ruled three-layer naming: the provider contract's identity field is now a REQUIRED readonly name (was optional providerId), self-reported and truthful, rendered as [vector-index:<name>] where the index identifies itself and stamped into the op-name strings journals already parse (AddToVectorIndex(<name>)). The built-in JS engine names itself hnsw-js. A runtime provider instance compiled against the previous optional contract is tolerated - never crashed on, never silently mislabeled: it stamps unknown-provider and emits one loud warning naming the missing field. Graph index operations keep their static names (they never interpolate provider identity), and no public API exports a provider-routed hnsw-carrying name, so no deprecation shim is required.
This commit is contained in:
parent
55b867c998
commit
3be4ba96c2
6 changed files with 92 additions and 38 deletions
12
RELEASES.md
12
RELEASES.md
|
|
@ -82,10 +82,20 @@ demand-load cost OFF the transaction path.
|
|||
`AddToVectorIndex(...)`/`RemoveFromVectorIndex(...)` — the old names hard-coded an
|
||||
algorithm that may not be the one actually running (a non-HNSW native vector provider
|
||||
emitting `"RemoveFromHNSW"` has sent an operator hunting an index that doesn't exist).
|
||||
The parenthesized suffix names the ACTIVE backend: `js-hnsw` for the built-in engine, or
|
||||
The parenthesized suffix names the ACTIVE backend: `hnsw-js` for the built-in engine, or
|
||||
the native provider's own identity when it self-identifies. **If you parse these op-name
|
||||
strings** (log processors, journal tooling), update your matcher from
|
||||
`AddToHNSW`/`RemoveFromHNSW` to `AddToVectorIndex(`/`RemoveFromVectorIndex(`.
|
||||
- **Provider identity is now a REQUIRED `name` field** on the vector provider contract
|
||||
(`VectorIndexProvider.name`, `src/plugin.ts`) — every implementation self-reports its own
|
||||
identity truthfully (its algorithm/engine), never inheriting a default. It renders as the
|
||||
op-name suffix above and, wherever the vector index identifies itself in prose log lines,
|
||||
as the tag `[vector-index:<name>]`. **Native provider adoption is a one-line change**:
|
||||
declare `readonly name = '<your-provider-name>'`. A provider instance that still lacks
|
||||
`name` at runtime (an older native build compiled against the previous, optional field) is
|
||||
never crashed on and never silently mislabeled: it stamps `unknown-provider` and emits one
|
||||
loud warning naming the missing field, so the gap is discoverable instead of a permanent
|
||||
fossil label in every journal line.
|
||||
|
||||
## v8.9.0 — 2026-07-19 (flush is durability-only: history maintenance moves to close())
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue