Changelog

Shipped updates.

    • The Python SDK laserdata[async] extra now includes uvloop for async event loops; benchmark streaming subscription throughput rose 18%.
    • Fixed a compiled query planner race where concurrent writes to one namespace key could return a stale read during the 50ms replication window on Growth multi-region deployments.
    • Corrected client.store() TTL documentation: TTL starts at last-write, not initial creation.
    • Streaming subscriptions accept filter predicates at connection time, reducing event fanout for agents watching only some namespace writes. Syntax: client.stream(namespace="x", filter={"step__gte": 3}).
    • TypeScript SDK now matches Python SDK features; all store, query, and stream methods have full TypeScript types and JSDoc documentation.
    • Dashboard usage graphs now break down queries by namespace, showing which agent namespaces use the most read budget.
    • Compiled query planner now processes __in array predicates with up to 2,048 values in one pass; above 256 values, they previously used multiple scans.
    • The memory-mapped storage index now pre-warms at startup, cutting cold-read latency from up to 40ms to under 4ms on first access after a deployment restart.
    • Added client.delete_namespace(namespace) so agents can programmatically remove expired session state without relying only on TTL expiry.
    • Growth now includes multi-region read replicas. Select the replica region when creating a namespace. Supported regions: us-east-1, us-west-2, eu-west-1.
    • Vector similarity search now supports per-namespace cosine, dot-product, and L2 metrics. Cosine remains the default.
    • Breaking change: client.query() now requires keyword arguments; positional arguments are rejected. The old style warns in v0.6.x and raises TypeError in v0.7.0+.
    • Released the LangChain memory adapter: LaserDataMemory implements LangChain's BaseMemory, giving LangChain agents persistent context through LaserData without custom integration code.
    • Query endpoints now return the X-LaserData-Query-Plan header, which reports the execution plan type (single-pass, multi-pass, or index-lookup) for debugging.
    • Reduced p99 write latency from 12ms to 8ms by removing lock contention in the namespace write-ahead log under high concurrency.
    • Released the LlamaIndex integration: index and query engine adapters let LlamaIndex agents use LaserData as a document and vector store without manual schema management.
    • Compiled query plans are now cached per namespace for repeat patterns, reducing hot-path plan compilation from ~1.2ms to ~0.15ms.
    • SDK connection pooling enabled by default; configure via LaserDataClient(pool_size=N).
    • Raised the context storage limit from 1,536 to 4,096 float dimensions for vector embeddings, supporting models with higher-dimensional output.
    • Added namespace access tokens: generate a scoped API key limited to one namespace for per-agent isolation in multi-tenant deployments.
    • Python SDK supports Python 3.11 and 3.12; Python 3.8 support dropped.
    • Public early access is open. Registered teams can use the Python SDK, REST API, and documentation.
    • Core storage engine now ships document storage, a vector index, and real-time streaming in one deployment. Initial API: store, get, query, stream.
    • Free tier: 5,000 queries per day and 1 GB of context storage. No credit card required.