Releases: oceanbase/powercontext
Release list
PowerContext v0.0.1
PowerContext v0.0.1
PowerContext is PowerMem 2.0, the upgraded version of PowerMem. It turns human-agent work into durable,
project-scoped context so that a new agent session can recover decisions, outcomes, current state, and next steps
without relying on chat history alone.
This initial release establishes the first end-to-end PowerContext workflow: capture useful work context, store it
with provenance, recall it within a bounded project scope, and hand work over to another session or agent.
Highlights
- Durable project context: remember, search, revise, and retire project-scoped Memory entries with stable
citations and revision history. - Agent handoffs: preserve outcomes, current state, disposition, evidence, and next actions so work can continue
across sessions. - Codex integration: install the PowerContext Codex plugin to recall relevant context and perform explicit Memory
operations while coding. Server failures fail open and do not block normal Codex work. - Local-first setup: start with a persistent SQLite database and a loopback Server without configuring an
inference provider. Optional inference enables extraction and generation workflows. - Multiple integration surfaces: use the Core SDK, asynchronous Python client, CLI, HTTP API, or MCP tools.
- Governed context lifecycle: review Experience and Skill candidates before they become available for recall or
export. - Operations and diagnostics: health and readiness checks, a web dashboard, Prometheus-compatible metrics, and
OpenTelemetry tracing support.
Install
PowerContext requires Python 3.11 or later and supports Python versions below 4.0. Install the CLI and local Server
with uv:
uv tool install "powercontext[cli,server]==0.0.1"To connect PowerContext to Codex, install the plugin from the matching release tag:
powercontext setup codex --source oceanbase/powercontext --ref v0.0.1
powercontext server runIn another terminal, verify the installation:
powercontext doctor
powercontext doctor codexFor a Python application that only needs the asynchronous client:
uv add "powercontext[client]==0.0.1"Important Notes
v0.0.1is the first PowerContext package release. Public APIs, configuration, and persisted schemas may evolve
as the project moves beyond its initial release.- The default Server binds to
127.0.0.1:8000and stores data in the operating system's user data directory. - Explicit Memory operations work without an inference provider. Model-backed Memory extraction, reranking,
Experience or Skill generation, and generated Handoff workflows require the corresponding inference configuration. - Treat recalled context as untrusted evidence, and do not store credentials or other secrets in Memory.
Learn More
Thank you for trying PowerContext. We welcome feedback on installation, agent handoffs, context quality, and the
developer experience.
v1.1.7
What's Changed
- fix(ci): dispatch publish workflow without git checkout by @wayyoungboy in #1116
- feat(plugin): enable transcript inference by default; remove recall/remember skills by @lightzt99 in #1126
- Fix powermem-mcp help to exit without starting the server by @wayyoungboy in #1124
- fix(ci): avoid duplicate generated release notes by @wayyoungboy in #1123
- chore: bump version to 1.1.7 by @wayyoungboy in #1127
Full Changelog: v1.1.6...v1.1.7
PowerMem 1.1.6
What's Changed
- feat: sqlite default to coding agent by @lightzt99 in #1031
- docs: update LOCOMO benchmark results by @wayyoungboy in #1089
- Add Chinese docs and website localization by @wayyoungboy in #1090
- fix(mcp): preserve Snowflake ID precision across MCP tool boundary by @lightzt99 in #1100
- feat: use uv instead of bare python command by @yihong0618 in #1106
- feat(init): AskUserQuestion interactive flow + remote-init mode + dashboard 0.0.0.0 by @lightzt99 in #1101
- fix(scripts): preserve doc dirs in sync-website-docs (Fixes #1096) by @kic635 in #1097
- fix(server): push run_id filter to storage for session timeline by @kic635 in #1099
- Publish individual release binary assets by @wayyoungboy in #1108
- fix(intelligence): integrate retention fields into runtime paths by @knqiufan in #1084
- fix(intelligence): keep fresh zero-importance memories searchable by @wayyoungboy in #1113
- chore: bump version to 1.1.6 by @wayyoungboy in #1114
New Contributors
- @yihong0618 made their first contribution in #1106
- @kic635 made their first contribution in #1097
Full Changelog: v1.1.5...v1.1.6
PowerMem 1.1.5
What's Changed
- Improve Claude Code plugin init flow by @wayyoungboy in #1024
- fix: clean up graph search tools and results by @wayyoungboy in #1012
- [uv] Use uvx for Claude plugin backend init by @wayyoungboy in #1030
- fix: make graph add relationship writes transactional by @wayyoungboy in #1011
- Fix unit test regressions by @wayyoungboy in #1033
- fix: stabilize regression server restarts by @wayyoungboy in #1034
- build(deps-dev): bump vite from 7.3.2 to 7.3.5 in /dashboard by @dependabot[bot] in #1035
- build(deps): bump launch-editor from 2.12.0 to 2.14.1 in /docs/website by @dependabot[bot] in #1036
- build(deps): bump ws in /docs/website by @dependabot[bot] in #1037
- fix: harden regression server restart handling by @wayyoungboy in #1038
- Support no-LLM mode by @wayyoungboy in #1026
- feat: add NoopEmbedding provider for EMBEDDING_PROVIDER=none by @lightzt99 in #1058
- [codex] Add isolated no-LLM Claude hook regression tests by @wayyoungboy in #1050
- feat: move embedding model download into PowerMem with CN-aware routing by @lightzt99 in #1057
- build(deps): bump webpack-dev-server from 5.2.4 to 5.2.5 in /docs/website by @dependabot[bot] in #1064
- Add Claude Code hook privacy controls by @wayyoungboy in #1054
- fix(graph): add UNIQUE index and upsert for entity dedup (#1003) by @jfeng18 in #1032
- Add coding-agent observation and session timeline APIs by @wayyoungboy in #1051
- Merge MCP dependencies into server extra by @wayyoungboy in #1071
- docs: improve .env.example.full reranker and embedding provider documentation by @knqiufan in #1073
- fix(intelligence): replace unsafe number-grabbing fallback in _parse_importance_response by @knqiufan in #1075
- Publish release plugin and platform binaries by @wayyoungboy in #1060
- fix: resolve docs dependency and checkout deprecation by @wayyoungboy in #1079
- chore: bump version to 1.1.5 by @wayyoungboy in #1083
Full Changelog: v1.1.4...v1.1.5
PowerMem 1.1.4
What's Changed
- fix: handle multimodal image failures and native filter operators by @wayyoungboy in #982
- Fix SDK add when embedded seekdb is owned by server by @wayyoungboy in #973
- Expose filters on AgentMemory retrieval APIs by @wayyoungboy in #976
- ci: tolerate missing regression junit artifacts by @wayyoungboy in #999
- build(deps): bump shell-quote from 1.8.3 to 1.8.4 in /docs/website by @dependabot[bot] in #1000
- doc(claude-code-plugin): improve setup auto-detect and dashboard by @lightzt99 in #994
- Fix Node 20 CI deprecation and VS Code extension cache path by @wayyoungboy in #1005
- fix(intelligence): correct Ebbinghaus decay parameters and lifecycle logic by @jfeng18 in #995
- feat(server): auto-open Dashboard in browser on powermem-server start by @knqiufan in #963
- fix: apply access reinforcement to memory decay by @wayyoungboy in #1006
- fix(skill-store): fix broken embed calls and dedup threshold by @jfeng18 in #1001
- fix(dashboard): show empty states for overview charts by @wayyoungboy in #1007
- docs: add Why PowerMem section by @wayyoungboy in #1009
- fix: make lint usable for critical checks by @wayyoungboy in #1008
- docs: add AgentScope MCP integration guide by @wayyoungboy in #1013
- feat(api): filter listed memories by scope by @wayyoungboy in #1015
- fix(init): include server,seekdb extras and improve LLM auto-detection by @lightzt99 in #1016
- fix: scope graph entities by user by @wayyoungboy in #1010
- Fix search score and threshold handling by @wayyoungboy in #1020
- feat(init): change default data dir to ~/.powermem by @lightzt99 in #1019
New Contributors
Full Changelog: v1.1.3...v1.1.4
v1.1.3
What's Changed
- fix(intelligence): preserve on_get metadata merges on search path by @knqiufan in #981
- Fix agent memory sharing permissions by @wayyoungboy in #972
- feat(search): wire dashboard to semantic search, add time_range + sort by @LINxiansheng in #966
- fix(intelligence): soft mark forgotten memories by @wayyoungboy in #984
- feat(vscode-extension): add CodeFuse IDE support and durable server p… by @happyhust in #986
- Fix PyPI publish trigger for tag releases by @wayyoungboy in #985
- Make soft-forgotten memories rank lower by @wayyoungboy in #987
- chore: add powermem-mcp release flow by @wayyoungboy in #988
- fix(intelligence): expose final search score after ranking by @wayyoungboy in #991
- chore: bump version to 1.1.3 by @wayyoungboy in #990
New Contributors
- @LINxiansheng made their first contribution in #966
Full Changelog: v1.1.2...v1.1.3
v1.1.2
What's Changed
- build(deps-dev): bump vite from 7.3.1 to 7.3.2 in /dashboard by @dependabot[bot] in #896
- build(deps): bump lodash from 4.17.21 to 4.18.1 in /docs/website by @dependabot[bot] in #897
- feat: Add IDE integrations by @Teingi in #365
- docs: rewrite readme by @PsiACE in #374
- Fix SQLite filters key SQL injection (CWE-89) by @WSL0809 in #899
- Action Repair by @Ripcord55 in #900
- Fix #350: [Enhancement]: When some fields in UserProfile are NULL, th... by @JiwaniZakir in #902
- build(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /docs/website by @dependabot[bot] in #903
- Add ob441-reg and sparse case by @Ripcord55 in #905
- feat(examples): Add MoonBit client example for PowerMem HTTP API by @tonyfettes in #906
- fixed(core): OpenAI LLM by @Teingi in #901
- Dashboard Regression Cases by @Ripcord55 in #909
- fix(intelligence): store memory_type in metadata JSON column and enab… by @wayyoungboy in #910
- chore: bump version to 1.1.1 by @wayyoungboy in #912
- feat(config): add env var support for custom extraction/update/import… by @wayyoungboy in #911
- fix(i18n): add missing zh-CN translations for theme switch component by @wayyoungboy in #918
- fix(dashboard): remove incorrect no-data toast description on refresh by @wayyoungboy in #916
- fix(config): resolve sparse_embedder provider from dict on MemoryConf… by @wayyoungboy in #917
- Fixed the issue where a TypeError was thrown when using MemoryGraph due to GraphStoreFactory refusing to accept a complete configuration object. by @wayyoungboy in #919
- build(deps): bump @babel/plugin-transform-modules-systemjs from 7.28.5 to 7.29.4 in /docs/website by @dependabot[bot] in #924
- build(deps): bump qs and body-parser in /docs/website by @dependabot[bot] in #928
- fix(server): load .env before embedded-storage worker detectio by @Teingi in #920
- build(deps): bump postcss from 8.5.6 to 8.5.14 in /docs/website by @dependabot[bot] in #929
- fix(ci): skip scheduled workflows on forked repositories by @wayyoungboy in #944
- feat(deps): split cli/server/mcp/seekdb into optional extras by @wayyoungboy in #931
- build(deps): bump webpack-dev-server from 5.2.2 to 5.2.4 in /docs/website by @dependabot[bot] in #932
- build(deps): bump qs and express in /docs/website by @dependabot[bot] in #934
- fix(intelligence): unify memory-type classification thresholds by @knqiufan in #936
- fix(logging): SDK file logging, trace context, and gzip rotation by @wayyoungboy in #950
- fix(logging): complete logging system gaps across SDK, server, CLI, a… by @wayyoungboy in #952
- fix(user_memory): prevent LLM no-op explanation from overwriting user profile by @lightzt99 in #951
- feat(embedder): zero-config startup with built-in default embedder; split .env.example (closes #940 #941 #949 #948 #) by @happyhust in #945
- docs(integrations): add per-client setup guides and unify MCP default… by @happyhust in #954
- fix(intelligence): unify review-schedule formulas and stored-query behavior by @knqiufan in #938
- build(deps-dev): bump vitest from 3.2.4 to 4.1.0 in /dashboard by @dependabot[bot] in #953
- fix(intelligence): use per-memory decay rate for Ebbinghaus decay by @knqiufan in #956
- fix(deps): make seekdb optional for CentOS 7 compatible installs by @wayyoungboy in #964
- Support custom default headers for OpenAI-compatible providers by @wayyoungboy in #965
- fix(claude-code-plugin): improve SETUP.md + fix Anthropic temperature/top_p conflict by @lightzt99 in #961
- Feature/dashboard documentation 959 by @happyhust in #962
- fix(ci): isolate regression embedding dimensions by @wayyoungboy in #967
- fix(llm): wire base_url into AnthropicLLM and ZaiLLM clients by @lightzt99 in #968
- fix(ci): keep optional dependencies from breaking regression server by @wayyoungboy in #970
- fix(claude-code-plugin): improve SETUP.md — dashboard question, English translations, Python interpreter detection by @lightzt99 in #969
- fix(cli): keep config show section headers for empty optional groups by @wayyoungboy in #974
- Add Claude Code marketplace install flow by @wayyoungboy in #977
New Contributors
- @WSL0809 made their first contribution in #899
- @JiwaniZakir made their first contribution in #902
- @tonyfettes made their first contribution in #906
- @lightzt99 made their first contribution in #951
- @happyhust made their first contribution in #945
Full Changelog: v1.1.0...v1.1.2
v1.1.1
What's Changed
- build(deps-dev): bump vite from 7.3.1 to 7.3.2 in /dashboard by @dependabot[bot] in #896
- build(deps): bump lodash from 4.17.21 to 4.18.1 in /docs/website by @dependabot[bot] in #897
- feat: Add IDE integrations by @Teingi in #365
- docs: rewrite readme by @PsiACE in #374
- Fix SQLite filters key SQL injection (CWE-89) by @WSL0809 in #899
- Action Repair by @Ripcord55 in #900
- Fix #350: [Enhancement]: When some fields in UserProfile are NULL, th... by @JiwaniZakir in #902
- build(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /docs/website by @dependabot[bot] in #903
- Add ob441-reg and sparse case by @Ripcord55 in #905
- feat(examples): Add MoonBit client example for PowerMem HTTP API by @tonyfettes in #906
- fixed(core): OpenAI LLM by @Teingi in #901
- Dashboard Regression Cases by @Ripcord55 in #909
- fix(intelligence): store memory_type in metadata JSON column and enab… by @wayyoungboy in #910
New Contributors
- @WSL0809 made their first contribution in #899
- @JiwaniZakir made their first contribution in #902
- @tonyfettes made their first contribution in #906
Full Changelog: v1.1.0...v1.1.1
v1.1.0
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 powermemEmbedded 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 .envFor 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=1536Configure 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_pathand 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.
pyseekdbdependency for embedded use.
- Configure a local data directory via
Changed
-
CLI (
pmem config)- Prompts and help text updated to explain embedded seekdb options alongside remote OceanBase.
-
OceanBase vector store
updatemerges 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 loadingPOWERMEM_ENV_FILEduring dotenv initialization.- Memory list: consistent ID truncation in non-interactive output; ellipsis for truncated fields in interactive list.
-
Embeddings
- Ollama:
ollama_base_urlis accepted in Ollama embedding configuration.
- Ollama:
Build & tooling
- CI: workflow to export Docker image packages.
Upgrade notes
- If you use OceanBase, review
.env.examplefor embedded vs remote connection settings (ob_path, host, etc.). - For embedded seekdb, use the synchronous
MemoryAPI; see the async memory docs for theAsyncMemorylimitation. - Python 3.11+ remains the supported baseline (as documented in the README).
Full Changelog: v1.0.2...v1.1.0
v1.0.2
What's Changed
- Powermem CLI Cases by @Ripcord55 in #369
- fix(cli): honor --env-file by loading POWERMEM_ENV_FILE in dotenv step by @Teingi in #371
Full Changelog: v1.0.1...v1.0.2