Skip to content

v1.1.0

Latest

Choose a tag to compare

@Teingi Teingi released this 02 Apr 07:37
· 9 commits to main since this release
98b4942

PowerMem 1.1.0

Release date: April 2, 2026

Overview

This minor release focuses on embedded seekdb support for OceanBase-backed deployments, so you can run PowerMem against a local embedded database without a separate database server. It also includes CLI and embedding configuration fixes.

Quick start: from install to embedded seekdb

A minimal runnable path: no Docker, no separate database service—only Python, .env, and your app or CLI.

1. Install

pip install powermem

Embedded seekdb depends on pyseekdb, which is pulled in with powermem; you do not need an extra pip install for it.

2. Configure .env (embedded mode)

Copy the template and edit as needed:

cp .env.example .env

For OceanBase storage with embedded seekdb, the essentials are: do not configure a remote host, and point at a local data directory:

# OceanBase vector storage
DATABASE_PROVIDER=oceanbase

# Embedded mode: leave remote host empty (or unset)
OCEANBASE_HOST=
# Local data directory — same idea as ob_path in config
OCEANBASE_PATH=./seekdb_data

OCEANBASE_PORT=2881
OCEANBASE_USER=root@sys
OCEANBASE_PASSWORD=your_password
OCEANBASE_DATABASE=powermem
OCEANBASE_COLLECTION=memories

# Vector dimension must match your embedding model (example is a common size; adjust for your embedder)
OCEANBASE_EMBEDDING_MODEL_DIMS=1536

Configure LLM and embedding per the README (for example LLM_PROVIDER, LLM_API_KEY, EMBEDDER_*). The embedder output dimension and OCEANBASE_EMBEDDING_MODEL_DIMS must match. You can also run pmem config init for an interactive wizard that explains embedded seekdb vs remote OceanBase.

Added

  • Embedded seekdb (OceanBase)
    • Configure a local data directory via ob_path and use embedded mode when no remote host is required.
    • Automatic handling to ensure the target database exists before connecting.
    • Safer defaults for small embedded datasets (e.g. HNSW index behavior where IVF-family indexes are unsuitable).
    • Synchronous update/delete paths for embedded storage to avoid stability issues from concurrent access.
    • pyseekdb dependency for embedded use.

Changed

  • CLI (pmem config)

    • Prompts and help text updated to explain embedded seekdb options alongside remote OceanBase.
  • OceanBase vector store

    • update merges payloads with existing rows more reliably and reduces accidental loss of fields (including sparse embedding-related data).

Fixed

  • CLI

    • --env-file: respects custom env files by loading POWERMEM_ENV_FILE during dotenv initialization.
    • Memory list: consistent ID truncation in non-interactive output; ellipsis for truncated fields in interactive list.
  • Embeddings

    • Ollama: ollama_base_url is accepted in Ollama embedding configuration.

Build & tooling

  • CI: workflow to export Docker image packages.

Upgrade notes

  1. If you use OceanBase, review .env.example for embedded vs remote connection settings (ob_path, host, etc.).
  2. For embedded seekdb, use the synchronous Memory API; see the async memory docs for the AsyncMemory limitation.
  3. Python 3.11+ remains the supported baseline (as documented in the README).

Full Changelog: v1.0.2...v1.1.0