Repository navigation
PowerContext v1.3.0
Not only memory, but a full story.
English
PowerContext v1.3.0 makes project knowledge easier to manage and reuse. It introduces independent Atomic Memory, versioned decision policies, Artifact search and shared merge/restoration workflows, a Windows Desktop preview, and an experimental Dify integration.
Independent Atomic Memory
- Store each fact, preference, or decision as an independent
atomic-memoryArtifact with immutable content revisions, exact evidence references, and a separate lifecycle. - Create and revise explicit memories without a generation model. Search active memories using text, vector, or hybrid retrieval; vector retrieval requires a compatible Embedding configuration.
- Forget a memory while retaining its content and history. Merge related memories and restore content with explicit revision and state checks. Retired memories cannot be restored directly.
- Convert existing Memory collections through an offline migration that preserves entry version chains and converts exact entry references. Legacy collections move to an offline archive.
Decision models with explicit policies and observations
PR #1921 adds shared contracts for versioned decision policies, typed assessments, and observations, and connects them to Atomic Memory processing.
- Select
disabled,shadow,advisory, orenforcingbehavior for the Memory evidence gate. Shadow records an assessment while allowing the write; advisory flags insufficient evidence; enforcing can hold a write under the configured gate rules. - Distinguish substantive judgments from fallback or unassessed results. Observations retain policy/version, evidence references, coverage, final action, latency, and usage without retaining raw candidate or evidence content.
- Make the privacy boundary explicit. The default
no_external_callboundary makes no decision-model call;local_onlysupports a controlled in-process or loopback backend. Hosted redaction is not enabled by this release.
Model failures preserve the write path. Decision assistance and the gate remain opt-in. When enabled, the gate defaults to shadow with no_external_call: writes proceed without a decision-model call. Calibrate and evaluate the policy before enabling enforcement. Durable observations are isolated by Scope; this release includes no public audit dashboard. The current integration does not deliver a general replay/rescore runner, automatic policy promotion, or gates for every Artifact family. Existing authorization and candidate approval requirements remain in force.
Find and organize reusable Artifacts
- Search current Experience, managed Skill, Topic Memory, and Atomic Memory through a family-scoped route within a Scope. Results preserve complete content and exact revision references.
- Experience and managed Skill support text search; Topic and Atomic Memory also support configured vector/hybrid retrieval. Controls and score availability differ by family.
- Use shared merge and restoration services for Atomic Memory and Experience, including Atomic Memory restoration previews and stale-state checks. These are explicit operations; writes with an unknown outcome require state inspection before retrying.
- Choose automatic, full-text, semantic, or hybrid Memory search in the web Dashboard and inspect the executed mode, matching channels, and retrieval scores. Local Dashboard access can omit authentication; the Dashboard still requires explicit enablement.
Windows Desktop preview
Connect the unsigned Windows Desktop preview to an existing Server, select a Scope, save notes, search with full-text retrieval, read exact historical revisions, and copy content or references. The preview supports Chinese/English, themes, and connection diagnostics. Complete native interaction and formal release qualification remain unfinished; it does not replace Server deployment.
More ways to connect and troubleshoot
- Dify: An experimental source plugin provides 19 HTTP-backed tools for context preparation, Memory, Source capture, Handoff, Experience/Skill generation, and read-only candidate inspection. Deploy Server separately and configure a fixed Scope. Marketplace publication and complete installed-workflow acceptance remain separate from source availability.
- Codex: Import historical user prompts as ordinary Content Sources, with dry-run and persistent checkpoints. This imports user prompts, not complete conversations or verified conclusions.
- Server: Discover HTTP/MCP contracts and read a persistent deployment identity through
/v1/server-info. Read-only extraction diagnostics help distinguish configuration, model, Worker, and processing failures without exposing raw prompts or credentials. - Agent integrations: Improve DeepSeek Harness Desktop setup and native MCP diagnostics, ZCode workflows and lifecycle hooks, stale endpoint repair, and loopback transport handling.
Reliability and evaluation
-
Fix recall-sufficiency decisions to use vector relevance rather than fused ranking. Optional RecallEffort observations are persisted in daily aggregates; the recall gate remains disabled by default.
-
Improve extraction timeout recovery and exhausted-window handling, Topic Memory publication authorization, Scope binding errors, and SQLite vector-result limits.
-
Extend paired PowerContext OFF/ON continuation evaluation to Claude Code, OpenCode, and Pi; add task-completion and MemoryCode workloads, interval/latency/usage reporting, and LoCoMo-Plus Jev comparisons. Evaluation coverage does not establish a universal quality or performance gain.
-
Add compact Handoff continuity hints and Experience/Skill applicability-selection examples.
-
Provide a limited unified database migration bundle covering four registered Artifact tables. It reports
server_ready=falseand is not a complete production Server upgrade path.
Install and upgrade
After the package is published:
uv tool install --force "powercontext[cli,server]==1.3.0"Preserve the extras used by your deployment, such as code or seekdb. Upgrade Server, clients, and Agent integrations together.
Existing Memory databases require maintenance before the new service starts. Back up the complete database and configuration. Complete any required processing migration first, then use the new CLI and deployment configuration:
powercontext server atomic-memory-migrate --action plan --env-file .env
# Stop all APIs, hosts, Workers, automatic restarts, and input writes before apply.
powercontext server atomic-memory-migrate --action apply --env-file .env --maintenance-confirmed
powercontext server atomic-memory-migrate --action verify --env-file .envResolve all reported blockers and restart only when verification returns ready: true. Rollback requires the complete pre-migration backup. The limited unified migration bundle cannot replace this Atomic Memory migration. Reopen Agent sessions after upgrading.
Compatibility changes: retained legacy Memory routes return Atomic records and references, rather than collection revisions or MemoryCitation. Collection Create/Replace, entry revise/retire, capacity, and compaction are no longer supported. Update Memory evidence-gate configuration to declare the policy mode and privacy boundary; do not assume that enabling the gate permits external model calls. Old collection capacity/compaction settings do not constrain Atomic Memory. Custom extraction prompts and unresolved legacy candidates may block migration.
See migration, Atomic Memory compatibility, Artifact search, and Dify.
中文
PowerContext v1.3.0 让项目知识更容易管理和复用。本次带来独立原子记忆、有版本的决策策略、Artifact 搜索与共享合并恢复流程,Windows 桌面预览,以及试验性 Dify 接入。
每条记忆,独立管理
- 将每条事实、偏好或决策保存为独立的
atomic-memoryArtifact,分别保留不可变正文版本、精确证据引用和生命周期。 - 显式创建、修订记忆无需生成模型。支持文本、向量和混合检索;向量检索需要兼容的 Embedding 配置。
- 遗忘一条记忆时保留正文与历史。支持合并相关记忆、恢复内容,并检查正文版本与状态。已退役记忆不能直接恢复。
- 已有 Memory 集合通过停服迁移转为独立记忆,保留条目版本链并转换精确条目引用;旧集合移入离线归档。
决策模型:有策略,也有判断记录
PR #1921 补齐有版本的决策策略、类型化评估与观察记录契约,并接入 Atomic Memory 处理。
- Memory 证据门禁支持
disabled、shadow、advisory、enforcing。Shadow 记录判断但放行写入;advisory 对证据不足作标记;enforcing 可按配置暂缓写入。 - 区分实际完成的判断、故障降级和未判断结果。记录策略版本、证据引用、判断覆盖、最终动作、耗时和用量,不保留候选正文或证据原文。
- 明确内容外发边界。默认
no_external_call不调用决策模型;local_only支持部署可控的进程内或回环地址后端。本次未开放托管模型脱敏外发。
模型故障时保留写入流程。Decision assistance 和门禁仍需按需开启。门禁启用后默认采用 shadow 与 no_external_call,不调用决策模型、不阻断写入;进入 enforcing 前需完成校准与评测。持久化观察记录按 Scope 隔离,本次未提供公开审计界面。本次不包含通用 replay/rescore 执行器、自动策略晋升,也没有为所有 Artifact 接入决策门禁。原有权限与候选审核要求继续生效。
找到经验,也能整理经验
- 在一个 Scope 内,通过按 Family 选择的统一入口搜索 Experience、受管 Skill、Topic Memory 和 Atomic Memory。结果保留完整内容与精确版本引用。
- Experience、受管 Skill 支持文本检索;Topic Memory、Atomic Memory 还支持已配置的向量与混合检索。各 Family 的参数和分数支持范围有所不同。
- 为 Atomic Memory 和 Experience 提供共享合并与恢复服务,包括 Atomic Memory 的恢复预览和状态变化检查。操作由调用方显式发起;写入结果未知时,应先检查当前状态再决定是否重试。
- 网页 Dashboard 可选择自动、全文、语义或混合 Memory 搜索,并查看实际执行模式、命中通道与检索得分。本地访问可不配置认证;Dashboard 仍需显式启用。
Windows 桌面预览
新增未签名的 Windows Desktop 预览。连接已有 Server 后,可选择 Scope、保存笔记、全文查找、读取精确历史版本,以及复制正文和引用;支持中英文、主题切换与连接诊断。完整原生交互与正式发行验收尚未完成,桌面预览不替代 Server 部署。
接入与排查更清楚
- Dify: 试验性源码插件提供 19 个 HTTP 工具,覆盖上下文准备、Memory、Source 采集、Handoff、Experience/Skill 生成和候选只读查看。需单独部署 Server 并配置固定 Scope。源码可用不等于已上架 Marketplace,也不等于完整安装工作流验收通过。
- Codex: 将历史用户提示导入为普通 Content Source,支持 dry-run 与持久检查点。导入对象是用户提示,不是完整对话或已经验证的结论。
- Server: 通过
/v1/server-info读取持久部署身份并发现 HTTP/MCP 契约。提取只读诊断帮助区分配置、模型、Worker 与处理故障,不暴露原始提示和凭据。 - Agent 集成: 完善 DeepSeek Harness 桌面端接入与原生 MCP 诊断、ZCode 工作流和生命周期 Hook、过期端点修复以及本机回环传输。
稳定性与评测
-
召回充分性判断改用向量相关度,避免用融合排名代替语义相关度。可选 RecallEffort 观察按日聚合持久保存;召回门禁仍默认关闭。
-
改善提取超时恢复与耗尽窗口处理、Topic Memory 发布权限、Scope 绑定错误,以及 SQLite 向量结果数量限制。
-
将 PowerContext 开关对照续接评测扩展到 Claude Code、OpenCode、Pi,增加任务完成与 MemoryCode 场景、区间/耗时/用量报告,以及 LoCoMo-Plus Jev 对比。评测覆盖不代表所有任务都有统一的质量或性能提升。
-
增加精简 Handoff 续接提示,以及 Experience/Skill 适用性选择示例。
-
提供范围有限的统一数据库迁移包,仅覆盖四张已注册 Artifact 表,明确返回
server_ready=false,不能作为完整生产 Server 升级路径。
安装与升级
包发布后执行:
uv tool install --force "powercontext[cli,server]==1.3.0"保留当前部署使用的 code、seekdb 等扩展,一起升级 Server、客户端与 Agent 集成。
已有 Memory 数据库需要先停服迁移,再启动新服务。 完整备份数据库与配置;先完成必要的 processing 迁移,再使用新版 CLI 和部署配置:
powercontext server atomic-memory-migrate --action plan --env-file .env
# apply 前停止所有 API、Host、Worker、自动重启与输入写入。
powercontext server atomic-memory-migrate --action apply --env-file .env --maintenance-confirmed
powercontext server atomic-memory-migrate --action verify --env-file .env处理全部阻塞项,确认验证返回 ready: true 后再恢复服务。回滚需要迁移前的完整备份。范围有限的统一迁移包不能替代 Atomic Memory 迁移。升级后重新打开 Agent 会话。
兼容性变化:保留的旧 Memory 路由返回 Atomic 记录与引用,不再返回集合版本或 MemoryCitation。集合 Create/Replace、条目 revise/retire、capacity 和 compaction 不再支持。Memory 证据门禁配置需明确策略模式与隐私边界,开启门禁不代表允许外发模型调用;旧集合容量和压缩设置不限制 Atomic Memory。自定义提取 Prompt、未处理的旧候选等情况可能阻塞迁移。
详见迁移说明、Atomic Memory 兼容性、Artifact 搜索和 Dify 接入。
What's Changed
- fix(runtime): neutralise body-controlled envelope markers in the defa by @jasondeng1997 in #1781
- feat(e2e): run paired continuation workloads with Claude Code by @Fengzdadi in #1800
- fix(integrations): give the Pi and OpenCode hooks the remote embedding budget by @Fengzdadi in #1806
- feat(config): make local dashboard authentication optional by @PsiACE in #1707
- feat(evaluation): add pinned Claude Code Skill guidance regression suite by @Inference1 in #1748
- build(deps): bump pyjwt from 2.13.0 to 2.14.0 by @dependabot[bot] in #1812
- fix(systemone): stabilize Windows verification by @AlexStocks in #1811
- fix(sqlite): keep memory vector search within sqlite-vec's k limit by @Bdysj in #1802
- fix(deps): constrain incompatible MySQL driver versions by @knqiufan in #1768
- fix(e2e): preserve Bub version when installing ACP by @Teingi in #1823
- feat(zcode): add workflows, runtime diagnostics and lifecycle hooks by @jackie-cqz in #1814
- fix(memory): persist smaller windows after extraction timeouts by @knqiufan in #1769
- build(deps): bump tornado from 6.5.8 to 6.5.9 by @dependabot[bot] in #1826
- build(deps): bump next from 16.3.3 to 16.3.6 in /website by @dependabot[bot] in #1827
- build(deps): bump virtualenv from 21.5.1 to 21.7.13 by @dependabot[bot] in #1828
- build(deps-dev): bump jupyterlab from 4.6.3 to 4.6.4 by @dependabot[bot] in #1829
- build(deps): bump pyjwt from 2.14.0 to 2.15.0 by @dependabot[bot] in #1831
- build(deps): bump urllib3 from 2.7.0 to 2.8.0 by @dependabot[bot] in #1830
- fix(code): prevent native parser startup failure on macOS by @beatenevo in #1818
- feat(handoff): add compact continuity hints by @beatenevo in #1820
- build(deps): bump brace-expansion from 5.0.9 to 5.0.12 in /integrations/pi/plugins/powercontext by @dependabot[bot] in #1833
- docs: document memory governance server settings by @xujiantop-crypto in #1832
- fix(e2e): keep PowerContext out of the OFF arm by @Fengzdadi in #1816
- Fix/model usage attempt expiry by @jasondeng1997 in #1838
- build(deps): bump urllib3 from 2.7.0 to 2.8.0 in /e2e/bub by @dependabot[bot] in #1843
- build(deps): bump pyjwt from 2.13.0 to 2.15.0 in /e2e/bub by @dependabot[bot] in #1844
- build(deps): bump brace-expansion from 2.1.4 to 2.1.7 in /integrations/opencode/plugins/powercontext by @dependabot[bot] in #1845
- fix(e2e): give the usage-record observation window the recorder's budget by @jasondeng1997 in #1846
- feat(e2e): run paired continuation workloads with OpenCode by @Fengzdadi in #1835
- fix(topic-memory): authorize background publication by Scope authority by @Lkx-JY in #1847
- feat(e2e): run paired continuation workloads with Pi by @Fengzdadi in #1851
- build(deps): bump jdx/mise-action from 2.4.4 to 5.0.1 by @dependabot[bot] in #1852
- chore(authz): remove legacy topic-memory owner rows at startup by @Lkx-JY in #1849
- feat(evaluation): benchmark rollover handoffs against compaction-styl by @jasondeng1997 in #1819
- fix(dsh): defer automatic work until step admission by @DongYao0 in #1856
- fix(e2e): close gaps a review found in the paired harness by @Fengzdadi in #1853
- fix(dsh): preserve unrelated user patches during setup by @knqiufan in #1799
- build(deps): bump langgraph-sdk from 0.4.3 to 0.4.4 by @dependabot[bot] in #1861
- feat(examples): add Experience and Skill applicability selection by @knqiufan in #1836
- feat(dify): add 19 HTTP-backed PowerContext tools by @knqiufan in #1839
- feat(dsh): support Desktop setup with profile selection by @knqiufan in #1807
- feat(dashboard): expose Memory search modes and channels by @MaoMengww in #1878
- fix(dsh): diagnose native MCP tool catalog by @DongYao0 in #1876
- test(runtime): stabilize usage lock deadline by @DongYao0 in #1893
- feat(e2e): report intervals, latency, and usage in the paired comparison by @Fengzdadi in #1879
- feat(e2e): compare PowerContext off and on for task-completion workloads by @Fengzdadi in #1881
- feat(desktop): add scoped memory workflow preview by @knqiufan in #1663
- feat(artifacts): add family-scoped search by @frf12 in #1862
- docs(rfc): propose unified artifact search by @frf12 in #1858
- docs(rfc): define artifact search projections and join-free retrieval by @frf12 in #1803
- docs(rfc): introduce atomic memory as independent artifacts by @frf12 in #1809
- docs(rfc): propose shared artifact merge and undo by @frf12 in #1859
- docs(rfc): propose decision policy governance by @AlexStocks in #1770
- fix(cli): clarify embedding connection reuse prompt by @longdafeng in #1905
- refactor(evaluation): organize suites with independent commands by @Teingi in #1855
- feat: import codex sessions by @curryxjh in #1602
- feat(db): align migration prototype with single-table RFC by @Zxf-xufeng in #1772
- docs(rfc): define unified versioned database migrations by @Zxf-xufeng in #1771
- build(deps): bump @vitest/mocker and vitest in /evaluation/coding/swebench_pro/web by @dependabot[bot] in #1909
- build(deps): bump tinypool and vitest in /evaluation/coding/swebench_pro/web by @dependabot[bot] in #1910
- build(deps): bump source-map-js from 1.2.1 to 1.2.2 in /evaluation/coding/swebench_pro/web by @dependabot[bot] in #1911
- fix(dify): decouple generated contract from whole OpenAPI hash by @PsiACE in #1908
- fix(desktop): isolate CI fixture qualification and fix grouped selection by @PsiACE in #1907
- fix(cli): refresh stale setup endpoints safely by @longdafeng in #1913
- fix(topic-memory): record deterministic window rejections under their own code by @tlyyxjz in #1898
- feat(benchmark): add LoCoMo Plus Jev comparisons and results by @Teingi in #1873
- fix(client): bypass proxies for loopback transports by @DongYao0 in #1888
- feat(e2e): add two continuation workloads with different answer shapes by @Fengzdadi in #1884
- fix(topic-memory): stop redispatching exhausted work windows by @knqiufan in #1842
- fix(integrations): detect undeclared integration directories by @russell001209-ai in #1875
- fix(dsh): stop reporting recoverable server rejections as outages by @tlyyxjz in #1883
- feat(server): expose read-only extraction diagnostics by @PsiACE in #1796
- refactor(runtime): evict scope-local state as a unit by @Lkx-JY in #1915
- fix(scope): distinguish missing binding targets by @PsiACE in #1786
- feat(e2e): compare PowerContext off and on with MemoryCode dialogues by @Fengzdadi in #1919
- Fix/mcp request count by @curryxjh in #1923
- feat(recall): persist aggregate RecallEffort metrics by @chenncy in #1914
- fix(recall-gate): score sufficiency on vector relevance, not fused rank by @delete-cloud in #1918
- feat(memory): implement independent atomic memory by @frf12 in #1857
- feat(artifacts): share merge and restoration across families by @frf12 in #1880
- feat(server): add protocol discovery and persistent identity by @wutongyuonce in #1753
- feat(runtime): add decision policy governance types by @AlexStocks in #1921
- chore(release): prepare v1.3.0 by @hidb4ai in #1944
New Contributors
- @jasondeng1997 made their first contribution in #1781
- @Bdysj made their first contribution in #1802
- @xujiantop-crypto made their first contribution in #1832
- @delete-cloud made their first contribution in #1918
- @hidb4ai made their first contribution in #1944
Full Changelog: powercontext-v1.2.0...powercontext-v1.3.0