The storage foundation landed in 0.2.0: LanceDB on disk, BM25 full-text search via tropo query, tiered backend config in .vivary/storage.toml. That's the substrate.
What's still needed — and what this issue tracks:
- Embedding generation — when a node is upserted to the embedded backend, also generate and store a vector (text-embedding-3-small or local equiv). Explicit opt-in via
[storage.embedding] in storage.toml.
- Vector search in
tropo query — --mode semantic flag; ANN over the stored embeddings. Falls back to BM25 if no embeddings present.
- Clustering / community detection — group nodes by embedding similarity and expose as a graph view layer. Lets an agent navigate by meaning, not just explicit links.
Architecture constraint: this layer CONSUMES tropo's typed graph. The deterministic graph stays the substrate; semantic search is an opt-in overlay. No LLM dependency in tropo's core; embedding calls are gated behind the [embedded] extra and [storage.embedding] config.
Depends on: 0.2.0 storage layer (done), a real embedding provider integration (0.3.x scope).
The storage foundation landed in 0.2.0: LanceDB on disk, BM25 full-text search via
tropo query, tiered backend config in.vivary/storage.toml. That's the substrate.What's still needed — and what this issue tracks:
[storage.embedding]instorage.toml.tropo query—--mode semanticflag; ANN over the stored embeddings. Falls back to BM25 if no embeddings present.Architecture constraint: this layer CONSUMES tropo's typed graph. The deterministic graph stays the substrate; semantic search is an opt-in overlay. No LLM dependency in tropo's core; embedding calls are gated behind the
[embedded]extra and[storage.embedding]config.Depends on: 0.2.0 storage layer (done), a real embedding provider integration (0.3.x scope).