unstale

pypi / redisvl

redisvl

What changed in redisvl 0.27 to 0.28, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-28.

32 breaking3 security2 new APIs and options1 performance4 behavior and defaults12 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

redisvl 0.2832 changes

Breaking changes 26

  • The constructor no longer converts a sync Redis client automatically. Pass an async client, or convert a non-cluster client yourself with RedisConnectionFactory.sync_to_async_redis().

    0.28.0release notes

  • Passing the wrong Redis client flavour now raises TypeError at construction rather than failing at first use.

    0.28.0release notes

  • Type checkers now see the real constructor signatures, so calls passing unsupported arguments may newly fail type checking.

    0.28.0release notes

  • This index-constructor keyword is removed; use connection_kwargs with the same value.

    0.28.0release notes

  • Use this index-constructor keyword in place of the removed connection_args and redis_kwargs, passing the same value.

    0.28.0release notes

  • Type checkers now see the real vectorizer method signature; calls passing unsupported arguments may newly fail type checking.

    0.28.0release notes

  • Type checkers now see the real vectorizer method signature; calls passing unsupported arguments may newly fail type checking.

    0.28.0release notes

  • GEO validation and schema inference now expect longitude before latitude, matching Redis. Existing latitude-first values may need swapping and reloading; validation cannot detect every swapped pair.

    0.28.0release notes

  • Use this function in place of the removed RedisConnectionFactory.connect().

    0.28.0release notes

  • Use this function in place of the removed RedisConnectionFactory.connect().

    0.28.0release notes

  • Type checkers now see the real signatures, so calls passing unsupported arguments may newly fail type checking.

    0.28.0release notes

  • An index given a client without redis_url now raises RedisVLError on reconnect after that client is closed, instead of falling back to REDIS_URL.

    0.28.0release notes

  • This index-constructor keyword is removed; use connection_kwargs with the same value.

    0.28.0release notes

  • Use this keyword in the connection factory functions in place of the removed url keyword.

    0.28.0release notes

  • An AsyncSearchIndex built with both redis_url and a url inside connection_kwargs now raises instead of connecting to the latter.

    0.28.0release notes

  • A cache built from a redis_url now raises ConnectionError when its async client is created, surfacing an unreachable server at construction rather than at the first command.

    0.28.0release notes

  • This connection factory method is removed; use get_redis_connection() or get_async_redis_connection() instead.

    0.28.0release notes

  • Passing the wrong Redis client flavour now raises TypeError at construction rather than failing at first use.

    0.28.0release notes

  • The connection method and its AsyncSearchIndex counterpart are removed; pass redis_client or redis_url to the constructor instead.

    0.28.0release notes

  • The method and its AsyncSearchIndex counterpart are removed; pass redis_client or redis_url to the constructor instead.

    0.28.0release notes

  • Type checkers now see the real constructor signatures, so calls passing unsupported arguments may newly fail type checking.

    0.28.0release notes

  • Type checkers now see the real signatures, so calls passing unsupported arguments may newly fail type checking.

    0.28.0release notes

  • Type checkers now see the real signatures, so calls passing unsupported arguments may newly fail type checking.

    0.28.0release notes

  • Passing an empty reference id now raises ValueError instead of matching every reference, deleting one and reporting success.

    0.28.0release notes

  • Passing an empty reference id now raises ValueError instead of matching every reference and returning an arbitrary one.

    0.28.0release notes

  • The keyword is removed from all five connection factory functions; use redis_url instead.

    0.28.0release notes

Security 1

  • Custom tool profiles can scope every query to a tenant from the caller’s verified token. The injected field is hidden from the model, and injecting profiles are refused when authentication is off, transport is stdio, or another tool can reach…

    0.28.0release notes

New APIs and options 2

  • This public function returns True for filters that match every document, including None, "*" and an uninitialised FilterExpression.

    0.28.0release notes

  • The constructor accepts owns_client to control whether the index closes its Redis client on disconnect or garbage collection. The default is unchanged; pass True to hand over a supplied client or False to keep one the index would otherwise close.…

    0.28.0release notes

Performance 1

  • For JSON indexes with validate_on_load=True, schema-derived JSONPath expressions are compiled once and reused instead of re-parsed for every field of every document, substantially speeding document loading.

    0.28.0release notes

Behavior and default changes 2

  • The protobuf upper bound has been removed from the all extra, so installations are no longer constrained by RedisVL when resolving newer protobuf versions.

    0.28.0release notes

  • The protobuf upper bound has been removed from the vertexai extra, so installations are no longer constrained by RedisVL when resolving newer protobuf versions.

    0.28.0release notes

redisvl 0.2722 changes

Breaking changes 6

  • Replaces EXTERNAL_INDEX_LIFECYCLE_CONFLICT in redisvl.extensions.constants; code importing the old name or matching its old message needs updating.

    0.27.2release notes

  • Geo coordinates reject strings and Decimal values with TypeError, and out-of-range coordinates with ValueError; zero, negative, or infinite radii raise ValueError.

    0.27.1release notes

  • Geo radius queries now use the supplied fractional distance instead of truncating it to an integer.

    0.27.1release notes

  • between(start, end) raises TypeError unless both bounds are real numbers; coerce numeric strings or Decimal values first.

    0.27.1release notes

  • Tag filter values are validated and a | in a value is escaped, so it matches one literal value rather than introducing a union.

    0.27.1release notes

  • A raw-string filter containing a top-level | is now contained within the filter, preventing results outside the vector range.

    0.27.1release notes

Security 2

  • Clearing an index uses CountQuery instead of FT.INFO, making it available to credentials with +@read +@write; clearing also continues past pages whose keys could not be deleted.

    0.27.2release notes

  • Clearing an index uses CountQuery instead of FT.INFO, making it available to credentials with +@read +@write; clearing also continues past pages whose keys could not be deleted.

    0.27.2release notes

Behavior and default changes 2

  • Filtered queries no longer group vector-range clauses in parentheses; the meaning is unchanged, but exact query-string assertions may need updating.

    0.27.1release notes

  • Filtered queries no longer wrap the whole query; the meaning is unchanged, but exact query-string assertions may need updating.

    0.27.1release notes

Fixes and other changes 12

  • Fixes cache clearing key scans that hang or crash on Redis Cluster.

    0.27.2release notes

  • SemanticCache, MessageHistory, SemanticMessageHistory and SemanticRouter instances created with create_index=False can now call clear() to remove their entries; delete() still raises ValueError.

    0.27.2release notes

  • Fixes batch writes being silently dropped on async Redis Cluster.

    0.27.2release notes

  • Fixes migration key scans that hang or crash on Redis Cluster.

    0.27.2release notes

  • Pagination now continues past a page whose matches were all dropped.

    0.27.2release notes

  • Glob metacharacters in SCAN match patterns are now escaped.

    0.27.2release notes

  • Fixes connections to Sentinel instances when passwords contain quotes.

    0.27.2release notes

  • Filter expressions combined with another clause are now parenthesised, fixing broken query shapes.

    0.27.1release notes

  • The eq, ne, and in text filters now work with multi-word values.

    0.27.1release notes

  • An explicit wildcard filter now runs instead of raising a syntax error.

    0.27.1release notes

  • Text filter values are validated and contained in their clause; quoted values in inequality filters now exclude correctly.

    0.27.1release notes

  • A filter_expression containing more than one clause now runs instead of raising a syntax error.

    0.27.1release notes