Context
Weaviate 1.39 adds an experimental endpoint to drop the index of a named vector
(DELETE /v1/schema/{Class}/vectors/{name}/index), exposed in the Python client via
collection.config.delete_vector_index() (weaviate/weaviate-python-client#1991). The CLI
should let operators drive this destructive, asynchronous, irreversible operation and
observe its lifecycle.
Scope
- Add
--drop_vector_index <name> to update collection (drops one named vector's index).
- Mutually exclusive with
--vector_index; server-version warning (< v1.39.0).
- The drop must run after
config.update() (which reads-and-writes the whole schema),
otherwise a vectorIndexType: "none" vector would be PUT back to the server.
get collection listing must render a dropped vector as none (and not crash when the
named vector's vector_index_config is None), showing all distinct index types, e.g.
hnsw, none.
- Re-issuing the drop on an already-
none vector must be allowed (server returns 200):
it is a no-op while cleanup is in flight and re-enqueues a fresh cleanup task if the
previous one FAILED — the only operator recovery path for a stalled drop.
Files Involved
weaviate_cli/defaults.py — UpdateCollectionDefaults.drop_vector_index
weaviate_cli/commands/update.py — --drop_vector_index option
weaviate_cli/managers/collection_manager.py — validation, ordering, listing fix
test/unittests/test_managers/test_collection_manager.py — unit tests
requirements-dev.txt / setup.cfg — client dependency (temporary pin to PR #1991)
- operating skill docs
Acceptance Criteria
🤖 Generated with Claude Code
Context
Weaviate 1.39 adds an experimental endpoint to drop the index of a named vector
(
DELETE /v1/schema/{Class}/vectors/{name}/index), exposed in the Python client viacollection.config.delete_vector_index()(weaviate/weaviate-python-client#1991). The CLIshould let operators drive this destructive, asynchronous, irreversible operation and
observe its lifecycle.
Scope
--drop_vector_index <name>toupdate collection(drops one named vector's index).--vector_index; server-version warning (< v1.39.0).config.update()(which reads-and-writes the whole schema),otherwise a
vectorIndexType: "none"vector would be PUT back to the server.get collectionlisting must render a dropped vector asnone(and not crash when thenamed vector's
vector_index_configisNone), showing all distinct index types, e.g.hnsw, none.nonevector must be allowed (server returns 200):it is a no-op while cleanup is in flight and re-enqueues a fresh cleanup task if the
previous one FAILED — the only operator recovery path for a stalled drop.
Files Involved
weaviate_cli/defaults.py—UpdateCollectionDefaults.drop_vector_indexweaviate_cli/commands/update.py—--drop_vector_indexoptionweaviate_cli/managers/collection_manager.py— validation, ordering, listing fixtest/unittests/test_managers/test_collection_manager.py— unit testsrequirements-dev.txt/setup.cfg— client dependency (temporary pin to PR #1991)Acceptance Criteria
update collection --drop_vector_index Xdrops the named vector's index,--jsonsupported--vector_indexget collectionrendersnone/hnsw, noneand never crashes on a dropped vectornonevector is accepted (re-trigger), not blockedmake lintandmake testpass🤖 Generated with Claude Code