From 4ffdf4e97ad43c55d8718a1df581596db2e6097d Mon Sep 17 00:00:00 2001 From: hidb4ai Date: Mon, 26 Oct 2026 14:50:43 +0800 Subject: [PATCH 1/4] chore(release): prepare v1.4.1 --- README.md | 6 +-- README_CN.md | 6 +-- README_JP.md | 6 +-- .../src-tauri/src/transport/operations.json | 2 +- desktop/ui/src/generated/operations.ts | 2 +- docs/en/docs/get-started/install-and-run.md | 22 +++++----- docs/en/docs/get-started/manual-start.md | 6 +-- docs/en/docs/get-started/quickstart.md | 8 ++-- docs/zh/docs/get-started/install-and-run.md | 24 +++++------ docs/zh/docs/get-started/manual-start.md | 6 +-- docs/zh/docs/get-started/quickstart.md | 8 ++-- .../plugin/powercontext_dify/contract.json | 2 +- .../dsh/plugins/powercontext/README.md | 4 +- openapi/powercontext.yaml | 2 +- .../http/_generated/operations.py | 2 +- src/powercontext/http/_generated/schema.py | 2 +- tests/test_api_contract.py | 3 +- website/src/lib/releases.ts | 42 +++++++++++++++++++ 18 files changed, 98 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 14f2c2ff22..a34042070a 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,7 @@ PowerContext keeps durable project context outside any single chat. A first run Agent input → Source evidence → Memory / Topic Memory → PreparedContext → next session or Agent ``` -PowerContext 1.4.0 includes an interactive setup wizard. You need Python 3.11+, Git, and +PowerContext 1.4.1 includes an interactive setup wizard. You need Python 3.11+, Git, and [uv](https://docs.astral.sh/uv/getting-started/installation/); uv can provision Python when needed. To connect an Agent, also install its CLI. In the wizard, choose Basic memory for explicit saves and recall without model APIs; Full memory requires separate Generation and Embedding API credentials. For a local Server without model APIs, see @@ -178,7 +178,7 @@ Choose the path that matches your goal: ### 1. Install and run the wizard ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" +uv tool install --force "powercontext[cli,server]==1.4.1" mkdir -p powercontext-config && cd powercontext-config powercontext config init --language en --output .env powercontext config validate --env-file .env @@ -207,7 +207,7 @@ Code, Dashboard login, SSH forwarding, HTTPS prerequisites, and observable accep Codex installation is: ```bash -powercontext setup codex --ref powercontext-v1.4.0 +powercontext setup codex --ref powercontext-v1.4.1 powercontext doctor codex ``` diff --git a/README_CN.md b/README_CN.md index 12c36b0d3a..6baede2fd5 100644 --- a/README_CN.md +++ b/README_CN.md @@ -126,7 +126,7 @@ PowerContext 把可长期复用的项目上下文放在单次对话之外。一 Agent 输入 → Source 证据 → Memory / Topic Memory → PreparedContext → 新会话或新 Agent ``` -PowerContext 1.4.0 包含交互式配置向导。需要 Python 3.11+、Git 和 +PowerContext 1.4.1 包含交互式配置向导。需要 Python 3.11+、Git 和 [uv](https://docs.astral.sh/uv/getting-started/installation/);需要时 uv 可以按需提供 Python。 要接入 Agent,还需要安装对应的 CLI。向导中选择“基础记忆”即可在没有模型 API 的情况下显式保存与召回; 选择“完整记忆能力”则需要独立的 Generation、Embedding API 凭据。只想启动不依赖模型 API 的本地 Server 时, @@ -144,7 +144,7 @@ PowerContext 1.4.0 包含交互式配置向导。需要 Python 3.11+、Git 和 ### 1. 安装并运行配置向导 ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" +uv tool install --force "powercontext[cli,server]==1.4.1" mkdir -p powercontext-config && cd powercontext-config powercontext config init --language zh --output .env powercontext config validate --env-file .env @@ -168,7 +168,7 @@ powercontext capabilities [完整安装流程](https://powercontext.oceanbase.io/zh/docs/get-started/quickstart/)包含 Codex、Claude Code、Dashboard 登录、SSH 隧道、HTTPS 前提及逐项验收。例如,匹配本版本的 Codex 安装命令是: ```bash -powercontext setup codex --ref powercontext-v1.4.0 +powercontext setup codex --ref powercontext-v1.4.1 powercontext doctor codex ``` diff --git a/README_JP.md b/README_JP.md index b838ac3d0e..02b3072eba 100644 --- a/README_JP.md +++ b/README_JP.md @@ -120,7 +120,7 @@ PowerContext は、長く使うプロジェクトのコンテキストを 1 つ Agent の入力 → Source の証拠 → Memory / Topic Memory → PreparedContext → 新しいセッションまたは Agent ``` -PowerContext 1.4.0 には対話式セットアップウィザードが含まれています。Python 3.11+、Git、[uv](https://docs.astral.sh/uv/getting-started/installation/) が必要です。必要に応じて uv が Python を用意できます。Agent に接続するには、その CLI もインストールしてください。ウィザードでは、モデル API なしで明示的な保存と想起を試す場合は Basic memory、自動抽出を有効にする場合は Full memory を選択してください。Full memory には Generation と Embedding API の個別の認証情報が必要です。モデル API なしでローカル Server だけを起動する場合は[インストールと実行](docs/en/docs/get-started/install-and-run.md)を参照してください。macOS と Linux をサポートし、Windows のサポートは `experimental` です。 +PowerContext 1.4.1 には対話式セットアップウィザードが含まれています。Python 3.11+、Git、[uv](https://docs.astral.sh/uv/getting-started/installation/) が必要です。必要に応じて uv が Python を用意できます。Agent に接続するには、その CLI もインストールしてください。ウィザードでは、モデル API なしで明示的な保存と想起を試す場合は Basic memory、自動抽出を有効にする場合は Full memory を選択してください。Full memory には Generation と Embedding API の個別の認証情報が必要です。モデル API なしでローカル Server だけを起動する場合は[インストールと実行](docs/en/docs/get-started/install-and-run.md)を参照してください。macOS と Linux をサポートし、Windows のサポートは `experimental` です。 目的に合う経路を選択してください: @@ -133,7 +133,7 @@ PowerContext 1.4.0 には対話式セットアップウィザードが含まれ ### 1. ウィザードをインストールして実行する ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" +uv tool install --force "powercontext[cli,server]==1.4.1" mkdir -p powercontext-config && cd powercontext-config powercontext config init --language en --output .env powercontext config validate --env-file .env @@ -157,7 +157,7 @@ powercontext capabilities Scope を使います。その後、対応するプラグインをインストールして新しい Agent セッションを起動します。[完全な手順](https://powercontext.oceanbase.io/en/docs/get-started/quickstart/)では、Codex と Claude Code、Dashboard へのログイン、SSH 転送、HTTPS の前提条件、確認可能な受け入れチェックを扱っています。対応する Codex のインストールは次のとおりです。 ```bash -powercontext setup codex --ref powercontext-v1.4.0 +powercontext setup codex --ref powercontext-v1.4.1 powercontext doctor codex ``` diff --git a/desktop/src-tauri/src/transport/operations.json b/desktop/src-tauri/src/transport/operations.json index 7e427799f7..9170a68dba 100644 --- a/desktop/src-tauri/src/transport/operations.json +++ b/desktop/src-tauri/src/transport/operations.json @@ -1,5 +1,5 @@ { - "contractSha256": "3165f114185aa403b563c936d5fbd0829388628f4a37540d9d1519202a07871c", + "contractSha256": "c12901b88b8e958c9cd63469298b9a04b9d5e2b0b4564d83b50f7ae95542519a", "operations": { "get_liveness": { "method": "GET", diff --git a/desktop/ui/src/generated/operations.ts b/desktop/ui/src/generated/operations.ts index 9cab145c5d..9909a8b309 100644 --- a/desktop/ui/src/generated/operations.ts +++ b/desktop/ui/src/generated/operations.ts @@ -15,7 +15,7 @@ */ // Generated from openapi/powercontext.yaml. Do not edit. -export const contractSha256 = "3165f114185aa403b563c936d5fbd0829388628f4a37540d9d1519202a07871c"; +export const contractSha256 = "c12901b88b8e958c9cd63469298b9a04b9d5e2b0b4564d83b50f7ae95542519a"; export const operations = { "get_liveness": { "method": "GET", diff --git a/docs/en/docs/get-started/install-and-run.md b/docs/en/docs/get-started/install-and-run.md index 2a06f4215a..a13c7000af 100644 --- a/docs/en/docs/get-started/install-and-run.md +++ b/docs/en/docs/get-started/install-and-run.md @@ -1,6 +1,6 @@ --- title: Install and run -description: Install PowerContext 1.4.0 and run the local Server. +description: Install PowerContext 1.4.1 and run the local Server. --- # Install and run @@ -24,12 +24,12 @@ Embedded seekDB is unavailable on Windows. ## Choose a version -These instructions use PowerContext 1.4.0. Keep the package and Agent integration on -the same version: package `1.4.0` and Git tag `powercontext-v1.4.0`. +These instructions use PowerContext 1.4.1. Keep the package and Agent integration on +the same version: package `1.4.1` and Git tag `powercontext-v1.4.1`. ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" -powercontext setup codex --ref powercontext-v1.4.0 +uv tool install --force "powercontext[cli,server]==1.4.1" +powercontext setup codex --ref powercontext-v1.4.1 ``` Check the [capability matrix](../integrations/capabilities.md) for host support and maintenance status. @@ -41,13 +41,13 @@ You need Python 3.11 or newer, Git, and [`uv`](https://docs.astral.sh/uv/) on ma PowerContext from PyPI: ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" +uv tool install --force "powercontext[cli,server]==1.4.1" ``` For a source installation of the same version: ```bash -uv tool install --force "powercontext[cli,server] @ git+https://github.com/oceanbase/powercontext.git@powercontext-v1.4.0" +uv tool install --force "powercontext[cli,server] @ git+https://github.com/oceanbase/powercontext.git@powercontext-v1.4.1" ``` For a machine that only connects to a remote Server, the `cli` extra includes `setup`, `doctor`, and remote content @@ -126,7 +126,7 @@ Embedded seekDB is available on Linux and macOS when a compatible `pylibseekdb` support this embedded backend. Install or replace the tool with the optional seekDB extra: ```bash -uv tool install --force "powercontext[cli,server,seekdb]==1.4.0" +uv tool install --force "powercontext[cli,server,seekdb]==1.4.1" ``` When switching from SQLite, remove `POWERCONTEXT_SERVER_DATABASE_URL` from the Server process environment. An explicit @@ -193,10 +193,10 @@ migration after unfinished runs have drained. The current unified migration bund it does not provide a complete production Server upgrade path. Atomic Memory verification alone does not establish that readiness. Do not bypass `migration_required` or `migration_framework_not_ready`. -To upgrade to 1.4.0: +To upgrade to 1.4.1: ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" +uv tool install --force "powercontext[cli,server]==1.4.1" ``` To replace the installed tool with another Git ref: @@ -214,7 +214,7 @@ changes. An application that imports the async Client SDK should add it to that application's environment: ```bash -uv add "powercontext[client]==1.4.0" +uv add "powercontext[client]==1.4.1" ``` Use `builtin` for in-process Python composition, `server` for the service, `client` for the Python SDK, or `cli` for diff --git a/docs/en/docs/get-started/manual-start.md b/docs/en/docs/get-started/manual-start.md index 37836fa6c0..3c43eb2b70 100644 --- a/docs/en/docs/get-started/manual-start.md +++ b/docs/en/docs/get-started/manual-start.md @@ -49,7 +49,7 @@ source "$HOME/.local/bin/env" Install the PowerContext CLI and local Server: ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" +uv tool install --force "powercontext[cli,server]==1.4.1" powercontext --version powercontext --help ``` @@ -179,7 +179,7 @@ Use the Python Client to call the Server and create a Scope manually. Keep the S ```bash cd ~/powercontext-manual POWERCONTEXT_CLIENT_SERVER_URL=http://127.0.0.1:18080 \ -uv run --with "powercontext[client]==1.4.0" python - <<'PY' +uv run --with "powercontext[client]==1.4.1" python - <<'PY' import asyncio import os from powercontext.client import PowerContextClient @@ -214,7 +214,7 @@ Install the Codex plugin matching the Server version and point it to the manuall ```bash powercontext setup codex \ - --ref powercontext-v1.4.0 \ + --ref powercontext-v1.4.1 \ --server-url http://127.0.0.1:18080 powercontext doctor codex ``` diff --git a/docs/en/docs/get-started/quickstart.md b/docs/en/docs/get-started/quickstart.md index 2e6c64ce9b..9f2e0e5909 100644 --- a/docs/en/docs/get-started/quickstart.md +++ b/docs/en/docs/get-started/quickstart.md @@ -6,8 +6,8 @@ description: Configure full memory, connect Codex, and verify Source capture, To # Quick Start Start with installation, discuss a project in Codex, watch its input become Source evidence and an evolving topic, -then recover the decisions in a new session. These instructions use PowerContext 1.4.0, -with the Agent plugin from the matching `powercontext-v1.4.0` tag. +then recover the decisions in a new session. These instructions use PowerContext 1.4.1, +with the Agent plugin from the matching `powercontext-v1.4.1` tag. You need macOS or Linux, Python 3.11+, Git, [uv](https://docs.astral.sh/uv/getting-started/installation/), and an installed Codex CLI. Full memory also needs working Generation and Embedding model APIs: @@ -18,7 +18,7 @@ and recall; that does not enable automatic Topic Memory. ## 1. Install and open the wizard ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" +uv tool install --force "powercontext[cli,server]==1.4.1" mkdir -p ~/powercontext-demo cd ~/powercontext-demo powercontext config init --language en --output .env @@ -96,7 +96,7 @@ Reload the client settings and install the matching plugin: set -a . ./.env set +a -powercontext setup codex --ref powercontext-v1.4.0 +powercontext setup codex --ref powercontext-v1.4.1 powercontext doctor codex codex ``` diff --git a/docs/zh/docs/get-started/install-and-run.md b/docs/zh/docs/get-started/install-and-run.md index 1af6e476ab..66694599bd 100644 --- a/docs/zh/docs/get-started/install-and-run.md +++ b/docs/zh/docs/get-started/install-and-run.md @@ -1,6 +1,6 @@ --- title: 安装和运行 -description: 安装 PowerContext 1.4.0,并运行本地 Server。 +description: 安装 PowerContext 1.4.1,并运行本地 Server。 --- # 安装和运行 @@ -22,12 +22,12 @@ Windows 的 CLI、Server 和个人服务支持为试验性;各 Agent Host 仍 ## 选择版本 -本页使用 PowerContext 1.4.0。包与 Agent 集成保持版本一致: -Python 包版本为 `1.4.0`,对应 Git tag 为 `powercontext-v1.4.0`。 +本页使用 PowerContext 1.4.1。包与 Agent 集成保持版本一致: +Python 包版本为 `1.4.1`,对应 Git tag 为 `powercontext-v1.4.1`。 ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" -powercontext setup codex --ref powercontext-v1.4.0 +uv tool install --force "powercontext[cli,server]==1.4.1" +powercontext setup codex --ref powercontext-v1.4.1 ``` 宿主支持范围和维护状态见[能力矩阵](../integrations/capabilities.md)。 @@ -39,13 +39,13 @@ powercontext setup codex --ref powercontext-v1.4.0 [`uv`](https://docs.astral.sh/uv/),然后从 PyPI 安装 PowerContext: ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" +uv tool install --force "powercontext[cli,server]==1.4.1" ``` 如需从源码安装同一版本: ```bash -uv tool install --force "powercontext[cli,server] @ git+https://github.com/oceanbase/powercontext.git@powercontext-v1.4.0" +uv tool install --force "powercontext[cli,server] @ git+https://github.com/oceanbase/powercontext.git@powercontext-v1.4.1" ``` 只连接远程 Server 的机器安装 `cli` extra 即可使用 `setup`、`doctor` 和远程内容命令。运行本地 Server 或使用 @@ -115,7 +115,7 @@ powercontext server run --env-file /path/to/powercontext.env 后端。安装或替换工具时加入可选的 seekDB extra: ```bash -uv tool install --force "powercontext[cli,server,seekdb]==1.4.0" +uv tool install --force "powercontext[cli,server,seekdb]==1.4.1" ``` 从 SQLite 切换时,需要从 Server 进程环境中删除 `POWERCONTEXT_SERVER_DATABASE_URL`;seekDB 不接受显式的 @@ -163,7 +163,7 @@ Agent 诊断见[各自的集成文档](../integrations/index.md);Server 状态 升级已有部署前,先备份数据库和配置。1.1.0 会在 Server 启动时升级旧标签表约束,以支持 Topic Memory 标签。 先停止旧 Server 实例,再启动一个升级后的实例,待结构升级完成后再启动其他实例。对于 1.0.0 之前的数据库, 如果尚未完成[Artifact 处理迁移](../operate/artifact-processing-migration.md),还需要先执行该迁移。 -升级到 1.4.0 时,已有集合式 Memory 数据库还需完成[Atomic Memory 离线迁移](../operate/atomic-memory-migration.md)。 +升级到 1.4.1 时,已有集合式 Memory 数据库还需完成[Atomic Memory 离线迁移](../operate/atomic-memory-migration.md)。 先完成所需的 Artifact 处理迁移,再停止所有写入进程,执行 Atomic Memory 迁移并验证 `ready: true` 后启动新服务。 Server、客户端和 Agent 集成需一起升级。Dashboard 需要显式启用,本地使用可选择静态 Bearer 认证, 见[部署 Server](../operate/deploy-server.md);远程明文 HTTP 连接需要客户端明确同意, @@ -175,10 +175,10 @@ Server、客户端和 Agent 集成需一起升级。Dashboard 需要显式启用 Server 升级路径;Atomic Memory 验证通过也不代表整体迁移就绪。不要绕过 `migration_required` 或 `migration_framework_not_ready`。 -升级到 1.4.0: +升级到 1.4.1: ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" +uv tool install --force "powercontext[cli,server]==1.4.1" ``` 使用其他 Git ref 替换现有工具: @@ -195,7 +195,7 @@ uv tool install --force "powercontext[cli,server] @ git+https://github.com/ocean 如果应用需要导入异步 Client SDK,应把它加入该应用自己的环境: ```bash -uv add "powercontext[client]==1.4.0" +uv add "powercontext[client]==1.4.1" ``` 进程内 Python 组合使用 `builtin`,服务使用 `server`,Python SDK 使用 `client`,基于 Server 的命令行使用 diff --git a/docs/zh/docs/get-started/manual-start.md b/docs/zh/docs/get-started/manual-start.md index e9e9ee1109..769851c407 100644 --- a/docs/zh/docs/get-started/manual-start.md +++ b/docs/zh/docs/get-started/manual-start.md @@ -49,7 +49,7 @@ source "$HOME/.local/bin/env" 安装 PowerContext CLI 和本地 Server: ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" +uv tool install --force "powercontext[cli,server]==1.4.1" powercontext --version powercontext --help ``` @@ -179,7 +179,7 @@ Scope 是项目上下文数据的隔离空间,用于隔离 Source、Memory、T ```bash cd ~/powercontext-manual POWERCONTEXT_CLIENT_SERVER_URL=http://127.0.0.1:18080 \ -uv run --with "powercontext[client]==1.4.0" python - <<'PY' +uv run --with "powercontext[client]==1.4.1" python - <<'PY' import asyncio import os from powercontext.client import PowerContextClient @@ -214,7 +214,7 @@ export POWERCONTEXT_CODEX_SCOPE_ID=替换为Server返回的真实scope_id ```bash powercontext setup codex \ - --ref powercontext-v1.4.0 \ + --ref powercontext-v1.4.1 \ --server-url http://127.0.0.1:18080 powercontext doctor codex ``` diff --git a/docs/zh/docs/get-started/quickstart.md b/docs/zh/docs/get-started/quickstart.md index ca9b19d65b..070ec95785 100644 --- a/docs/zh/docs/get-started/quickstart.md +++ b/docs/zh/docs/get-started/quickstart.md @@ -6,8 +6,8 @@ description: 通过配置向导安装完整记忆能力,接入 Codex,并验 # 快速开始 本页从安装开始,带你完成一次真实的记忆体验:在 Codex 中讨论项目,看到原始输入进入 Source、主题记忆生成并演进, -再在新会话中找回决策。以下命令使用 PowerContext 1.4.0,Agent 插件使用对应的 -`powercontext-v1.4.0` tag。 +再在新会话中找回决策。以下命令使用 PowerContext 1.4.1,Agent 插件使用对应的 +`powercontext-v1.4.1` tag。 需要 macOS 或 Linux、Python 3.11+、Git、[uv](https://docs.astral.sh/uv/getting-started/installation/) 和已安装的 Codex CLI。 完整记忆还需要可用的 Generation 和 Embedding 模型 API;准备好各自的地址、模型名和 API key。 @@ -17,7 +17,7 @@ Codex 或 Claude 的订阅登录不会自动为 PowerContext Server 提供这些 ## 1. 安装并进入配置向导 ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" +uv tool install --force "powercontext[cli,server]==1.4.1" mkdir -p ~/powercontext-demo cd ~/powercontext-demo powercontext config init --language zh --output .env @@ -92,7 +92,7 @@ POWERCONTEXT_CODEX_SCOPE_ID=替换为返回的scope_id set -a . ./.env set +a -powercontext setup codex --ref powercontext-v1.4.0 +powercontext setup codex --ref powercontext-v1.4.1 powercontext doctor codex codex ``` diff --git a/integrations/dify/plugin/powercontext_dify/contract.json b/integrations/dify/plugin/powercontext_dify/contract.json index 662443e44d..2291f8fcfa 100644 --- a/integrations/dify/plugin/powercontext_dify/contract.json +++ b/integrations/dify/plugin/powercontext_dify/contract.json @@ -1,5 +1,5 @@ { - "api_version": "1.4.0", + "api_version": "1.4.1", "operations": { "list_atomic_memories": { "method": "POST", diff --git a/integrations/dsh/plugins/powercontext/README.md b/integrations/dsh/plugins/powercontext/README.md index 1d2dfcdd6d..548c224a05 100644 --- a/integrations/dsh/plugins/powercontext/README.md +++ b/integrations/dsh/plugins/powercontext/README.md @@ -5,8 +5,8 @@ This plugin is a thin DeepSeek Harness integration for a running PowerContext Se Install the released Server and plugin together: ```bash -uv tool install --force "powercontext[cli,server]==1.4.0" -powercontext setup dsh --source oceanbase/powercontext --ref powercontext-v1.4.0 +uv tool install --force "powercontext[cli,server]==1.4.1" +powercontext setup dsh --source oceanbase/powercontext --ref powercontext-v1.4.1 ``` `setup dsh` calls `dsh plugin --profile web add`. The model-facing PowerContext surface is registered through DSH's native `@deepseek-ai/dsh-mcp-client`. diff --git a/openapi/powercontext.yaml b/openapi/powercontext.yaml index 915b40be56..f08902602e 100644 --- a/openapi/powercontext.yaml +++ b/openapi/powercontext.yaml @@ -16,7 +16,7 @@ openapi: 3.0.3 info: title: PowerContext API description: Remote PowerContext transport. Runtime behavior is reported by /v1/capabilities. - version: 1.4.0 + version: 1.4.1 x-powercontext-feature-contracts: access.principal: {major: 1, minor: 0} scope.selection: {major: 1, minor: 0} diff --git a/src/powercontext/http/_generated/operations.py b/src/powercontext/http/_generated/operations.py index 9f817649fc..b96333617a 100644 --- a/src/powercontext/http/_generated/operations.py +++ b/src/powercontext/http/_generated/operations.py @@ -209,7 +209,7 @@ OPENAPI_VERSION = "3.0.3" API_TITLE = "PowerContext API" API_DESCRIPTION = "Remote PowerContext transport. Runtime behavior is reported by /v1/capabilities." -API_VERSION = "1.4.0" +API_VERSION = "1.4.1" FEATURE_CONTRACTS: dict[str, dict[str, JsonValue]] = { "access.principal": {"version": {"major": 1, "minor": 0}, "operations": ["get_access_principal"]}, "scope.selection": { diff --git a/src/powercontext/http/_generated/schema.py b/src/powercontext/http/_generated/schema.py index ccc01c5acd..3f4c08e56b 100644 --- a/src/powercontext/http/_generated/schema.py +++ b/src/powercontext/http/_generated/schema.py @@ -7,7 +7,7 @@ "info": { "title": "PowerContext API", "description": "Remote PowerContext transport. Runtime behavior is reported by /v1/capabilities.", - "version": "1.4.0", + "version": "1.4.1", }, "paths": { "/v1/atomic-memory/list": { diff --git a/tests/test_api_contract.py b/tests/test_api_contract.py index b5cd57ad74..92e89a677f 100644 --- a/tests/test_api_contract.py +++ b/tests/test_api_contract.py @@ -96,6 +96,7 @@ from powercontext.http._generated.operations import ( ACKNOWLEDGE_HANDOFF, ACTIVATE_HANDOFF, + API_VERSION, APPROVE_CANDIDATE, CAPTURE_CONTENT_SOURCE, CAPTURE_WORKING_NOTE, @@ -197,7 +198,7 @@ def test_contract_uses_the_namespaced_request_id_header() -> None: def test_server_info_contract_is_observable_and_forward_compatible() -> None: contract = yaml.safe_load(CONTRACT_PATH.read_text()) - assert contract["info"]["version"] == "1.4.0" + assert contract["info"]["version"] == API_VERSION operation = contract["paths"]["/v1/server-info"]["get"] assert operation["operationId"] == "get_server_info" assert operation["x-powercontext-access"] == { diff --git a/website/src/lib/releases.ts b/website/src/lib/releases.ts index ce7aec1644..7a76540260 100644 --- a/website/src/lib/releases.ts +++ b/website/src/lib/releases.ts @@ -28,6 +28,48 @@ export interface Release { // Only stable releases belong here; publish pre-release notes on GitHub Releases. export const releases: Release[] = [ + { + version: 'v1.4.1', + date: '2026-10-26', + title: { + en: 'Faster recall and Memory writes · Portable archives · More reliable Agent and Desktop workflows', + zh: '优化检索与记忆写入 · 支持可移植归档 · 完善 Agent 与桌面工作流', + }, + summary: { + en: 'PowerContext 1.4.1 reduces repeated database work during recall and Memory writes, removes duplicate Source text from extraction requests, and adds offline archive export and restore. It also expands Kimi Code workflows, improves Desktop navigation and save recovery, and adds clearer processing diagnostics and managed logs.', + zh: 'PowerContext 1.4.1 减少检索和记忆写入中的重复数据库操作,移除提取请求中重复的 Source 正文,并支持离线归档导出与恢复。同时扩展 Kimi Code 工作流,完善桌面端导航与保存失败后的恢复操作,提供更清晰的处理诊断与托管日志。', + }, + changes: { + en: [ + 'Reduce repeated database work by consolidating context recall queries, batching Memory lifecycle and authorization checks, reusing exact evidence revisions, and batching cited Experience reads. Scheduled processing skips consumed Scope windows, and Source capture can proceed while Memory extraction is running.', + 'Remove duplicate Source text from Atomic Memory extraction requests and compact repeated bodies in additional model projections. Skip reconciliation when a candidate has no comparable memories, and return invalid reconciliation decisions to the model for correction within the configured retry budget.', + 'Export, inspect, validate, and restore selected complete Scopes as portable .pcb archives. Preserve exact identities, revisions, evidence, and supported review state; validate conflicts before writes and recognize identical records on replay. This is an offline operator workflow, excludes deployment credentials and derived indexes, and does not replace a complete database backup or schema migration.', + 'Inspect durable Topic Memory processing blocks and explicitly resume eligible work after correcting its cause. Reject Topic Memory semantic mismatches, make the recall embedding budget configurable, and report why preparation fell back from semantic recall.', + 'Expand the experimental Kimi Code integration with workspace Scope bindings and opt-in recommended/full tool profiles, including Handoff, Experience, managed Skill, and Candidate workflows. Initial setup still defaults to the minimal profile; larger profiles require the corresponding Server capabilities and explicit approval for review operations.', + 'Improve Desktop shared navigation, Scope recovery, exact revision reading, and draft preservation after failed or ambiguous saves. Add an unsigned macOS app and disk-image preview and fix Linux packaged navigation. Protocol checks and hosted-runner tests do not establish signed distribution, clean-machine installation, or complete native accessibility coverage.', + 'Add an independent local Ops tool for inspecting, configuring, and managing a prepared personal Server runtime through explicit preflight and apply operations. Runtime downloading, repair, and the Desktop installation bridge remain separate work. Add a Scope CLI command group and text search for Experiences in the web Dashboard.', + 'Add managed rotating log files and worker log aggregation, plus dependency and processing observations. Bound HTTP request bodies and active responses, authenticate MCP calls per HTTP request, preserve path authorization, and make local write ownership atomic. Repair eligible ownerless migrated memories without inventing historical owners.', + 'Aggregate streamed model output so generation can survive gateway idle timeouts while retaining a complete result. Python applications can explicitly inject the optional Jev reranker with its own credentials and pinned model; it is not enabled by default or configured through the Server environment settings.', + 'Guard automatic prompt capture and context preparation, bound long-prompt recall and WorkBuddy Scope discovery, and improve Codex shim resolution and Windows receipt replacement. Reject blank text Sources at creation so they cannot poison later processing; make tool failures identify the rejected field or reason.', + 'Upgrade Server, clients, and Agent integrations together and back up existing databases before migration. Existing collection-based Memory deployments still require the documented Atomic Memory conversion. The registered database migration bundle continues to report server_ready=false; portable archives do not turn it into a complete production upgrade path.', + ], + zh: [ + '合并上下文召回查询,批量处理 Memory 生命周期与授权检查,复用精确证据版本,并批量读取被引用的 Experience,减少重复数据库操作。定时处理跳过已消费的 Scope 窗口,Memory 提取期间仍可采集新的 Source。', + '移除 Atomic Memory 提取请求中重复的 Source 正文,并压缩其他模型投影中的重复内容。候选记忆没有可比较对象时跳过协调步骤;模型给出无效协调决策时,在配置的重试预算内反馈原因并请求纠正。', + '以可移植 .pcb 归档导出、检查、验证和恢复选定的完整 Scope,保留精确身份、历史版本、证据与受支持的审核状态;写入前检查冲突,重复恢复识别已有相同记录。这是离线运维操作,不包含部署凭据与派生索引,也不替代完整数据库备份或结构迁移。', + '查看持久化的 Topic Memory 处理阻塞,修正原因后显式恢复符合条件的任务;拒绝语义不一致的 Topic Memory。支持配置召回 Embedding 预算,并说明上下文准备为何回退到非语义检索。', + '试验性 Kimi Code 集成新增工作目录与 Scope 绑定,并提供需显式选择的 recommended/full 工具档位,覆盖 Handoff、Experience、托管 Skill 与 Candidate 工作流。首次安装仍默认 minimal;更多工具需要相应 Server 能力,审核操作仍需显式批准。', + '完善桌面端共享导航、Scope 恢复、精确版本读取,以及保存失败或结果不确定时的草稿保留。新增未签名的 macOS 应用与磁盘镜像预览,修复 Linux 打包后的导航。协议检查和托管运行器测试不代表已完成签名发行、干净机器安装或完整原生无障碍验收。', + '新增独立本地 Ops 工具,通过显式预检与执行操作检查、配置和管理已准备好的个人 Server 运行环境。运行环境下载、修复与桌面安装桥接仍属于独立工作;新增 Scope CLI 命令组和网页 Dashboard 的 Experience 文本搜索。', + '新增托管轮转日志文件、Worker 日志汇聚,以及依赖和处理状态观测。限制 HTTP 请求体和活跃响应规模,按每次 HTTP 请求认证 MCP 调用,保留路径授权约束,并让本地写入与所有权登记原子提交。修复符合条件的迁移后无主记忆,同时保留历史所有权证据的真实边界。', + '聚合模型流式输出,让生成过程在网关空闲超时限制下持续接收数据并返回完整结果。Python 应用可显式注入 Jev 重排器,并配置独立凭据与固定模型;该能力默认不启用,也不通过 Server 环境变量配置。', + '为自动提示采集与上下文准备增加边界检查,限制长提示召回和 WorkBuddy Scope 发现,完善 Codex shim 解析与 Windows 回执替换。在创建时拒绝空白文本 Source,避免阻塞后续处理;工具失败时明确指出被拒绝的字段或原因。', + 'Server、Client 与 Agent 集成需一起升级,迁移前备份已有数据库。旧集合式 Memory 部署仍需按文档完成 Atomic Memory 转换;已注册的数据库迁移包继续报告 server_ready=false,可移植归档不会使其成为完整的生产升级路径。', + ], + }, + installCommand: 'uv tool install --force "powercontext[cli,server]==1.4.1"', + githubUrl: 'https://github.com/oceanbase/powercontext/releases/tag/powercontext-v1.4.1', + }, { version: 'v1.4.0', date: '2026-10-19', From 0d566eeec6a77f31057216039153b5ae41c266e7 Mon Sep 17 00:00:00 2001 From: hidb4ai Date: Mon, 26 Oct 2026 14:55:44 +0800 Subject: [PATCH 2/4] chore(desktop): qualify v1.4.1 release contract --- desktop/README.md | 2 +- desktop/README.zh.md | 2 +- desktop/VALIDATION.md | 41 ++++++++++++++++++- .../src/connections/compatibility.json | 19 +++++++++ 4 files changed, 61 insertions(+), 3 deletions(-) diff --git a/desktop/README.md b/desktop/README.md index c7976388c4..6c611873b1 100644 --- a/desktop/README.md +++ b/desktop/README.md @@ -150,7 +150,7 @@ Installed boundary checks exercise an 8192-byte Unicode note, reject over-budget After upgrading from an earlier preview, open Connections and select your saved connection. Profiles matching the bundled API contract appear under “Available for this Desktop build”; compare their tested Server builds with your deployment before selecting one, saving, checking and explicitly using the connection again. New connections start with no compatibility selection. -Historical profiles appear as disabled records. A saved incompatible or unavailable selection remains visible with an explanation until explicitly replaced; it is never silently upgraded. For the qualified current Server sources, explicitly choose `sqlite-atomic-98275dbb-v1` and check the connection before selecting a Scope; that record's contract digest matches this build's bundled contract, while `sqlite-atomic-1da99747-v1`, `sqlite-atomic-d9a78567-v1`, `sqlite-atomic-caf2a35a-v1`, `sqlite-atomic-683e2db0-v1` and `sqlite-atomic-cab054db-v1` qualify their corresponding Server source deployments and do not match it. The recorded Server source and wheel identities must match the deployment you intend to use. The independently qualified `ci-fixtures` build is for disposable acceptance tests. Historical qualification evidence and remaining requirements are documented in the [validation guide](VALIDATION.md). +Historical profiles appear as disabled records. A saved incompatible or unavailable selection remains visible with an explanation until explicitly replaced; it is never silently upgraded. For the qualified current Server sources, explicitly choose `sqlite-atomic-4ffdf4e9-v1` and check the connection before selecting a Scope; that record's contract digest matches this build's bundled contract, while `sqlite-atomic-98275dbb-v1`, `sqlite-atomic-1da99747-v1`, `sqlite-atomic-d9a78567-v1`, `sqlite-atomic-caf2a35a-v1`, `sqlite-atomic-683e2db0-v1` and `sqlite-atomic-cab054db-v1` qualify their corresponding Server source deployments and do not match it. The recorded Server source and wheel identities must match the deployment you intend to use. The independently qualified `ci-fixtures` build is for disposable acceptance tests. Historical qualification evidence and remaining requirements are documented in the [validation guide](VALIDATION.md). ## Build on macOS diff --git a/desktop/README.zh.md b/desktop/README.zh.md index 2bf5a726b7..865d01d57d 100644 --- a/desktop/README.zh.md +++ b/desktop/README.zh.md @@ -133,7 +133,7 @@ Windows GitHub Actions 会构建未签名安装包,安装到临时中文路径 从早期预览版升级后,请打开「连接」并选中已保存的连接。与当前 API 契约匹配的配置显示在「此 Desktop 构建可用」中;先核对已测试的 Server 构建与实际部署,再明确选择、保存、检查并使用该连接。新连接默认不选择兼容配置。 -历史配置显示为不可选择的记录。已保存的不匹配或不可用配置仍会显示并说明原因,须明确替换,不会静默升级。对于已资格化的当前 Server 源码,明确选择 `sqlite-atomic-98275dbb-v1` 并在选取范围前检查连接;该记录的契约摘要与本构建的打包契约匹配,而 `sqlite-atomic-1da99747-v1`、`sqlite-atomic-d9a78567-v1`、`sqlite-atomic-caf2a35a-v1`、`sqlite-atomic-683e2db0-v1` 与 `sqlite-atomic-cab054db-v1` 只资格化各自对应 Server 源码的部署,并不匹配打包契约。已记录的 Server 源码和 wheel 身份必须与实际部署一致。独立验证的 `ci-fixtures` 构建仅用于临时验收测试。历史资格证据和剩余要求见[验证说明](VALIDATION.md)。 +历史配置显示为不可选择的记录。已保存的不匹配或不可用配置仍会显示并说明原因,须明确替换,不会静默升级。对于已资格化的当前 Server 源码,明确选择 `sqlite-atomic-4ffdf4e9-v1` 并在选取范围前检查连接;该记录的契约摘要与本构建的打包契约匹配,而 `sqlite-atomic-98275dbb-v1`、`sqlite-atomic-1da99747-v1`、`sqlite-atomic-d9a78567-v1`、`sqlite-atomic-caf2a35a-v1`、`sqlite-atomic-683e2db0-v1` 与 `sqlite-atomic-cab054db-v1` 只资格化各自对应 Server 源码的部署,并不匹配打包契约。已记录的 Server 源码和 wheel 身份必须与实际部署一致。独立验证的 `ci-fixtures` 构建仅用于临时验收测试。历史资格证据和剩余要求见[验证说明](VALIDATION.md)。 ## 在 macOS 上构建 diff --git a/desktop/VALIDATION.md b/desktop/VALIDATION.md index 94c5a30e0c..7ca56b6d54 100644 --- a/desktop/VALIDATION.md +++ b/desktop/VALIDATION.md @@ -22,7 +22,7 @@ cargo test --locked --manifest-path desktop/src-tauri/Cargo.toml ## Compatibility scope -[compatibility.json](src-tauri/src/connections/compatibility.json) preserves the recorded Server sources, normalized OpenAPI contract digests and qualification-wheel digests for the historical profiles below. The current contract is qualified by `sqlite-atomic-98275dbb-v1` below; ordinary builds require explicitly selecting it and checking the connection before business operations become available. The `sqlite-atomic-1da99747-v1`, `sqlite-atomic-d9a78567-v1`, `sqlite-atomic-caf2a35a-v1`, `sqlite-atomic-683e2db0-v1` and `sqlite-atomic-cab054db-v1` records qualify their corresponding Server source deployments and do not match this bundled contract. Historical records are disabled in the selector, and saved unavailable selections remain visible until explicitly replaced. CI builds have their own artifact identities and do not change product qualification. +[compatibility.json](src-tauri/src/connections/compatibility.json) preserves the recorded Server sources, normalized OpenAPI contract digests and qualification-wheel digests for the historical profiles below. The current contract is qualified by `sqlite-atomic-4ffdf4e9-v1` below; ordinary builds require explicitly selecting it and checking the connection before business operations become available. The `sqlite-atomic-98275dbb-v1`, `sqlite-atomic-1da99747-v1`, `sqlite-atomic-d9a78567-v1`, `sqlite-atomic-caf2a35a-v1`, `sqlite-atomic-683e2db0-v1` and `sqlite-atomic-cab054db-v1` records qualify their corresponding Server source deployments and do not match this bundled contract. Historical records are disabled in the selector, and saved unavailable selections remain visible until explicitly replaced. CI builds have their own artifact identities and do not change product qualification. The real Server harness covers SQLite with anonymous loopback, static Bearer, HTTPS with explicit CA/base path, and injected-provider/enforced access. It exercises save/search/exact reads, identity changes, binding revocation, ambiguous writes without replay and Scope pagination. Installed UI checks cover repeated launches preserving the existing editor, late committed-save responses preserving a new Scope draft, explicit connection/Scope selection, clipboard copies, connection isolation, draft cancellation, byte limits and independent Server survival after Desktop exit. @@ -30,6 +30,45 @@ Selecting a compatibility profile does not attest the remote binary identity. Ex ### Current Server protocol qualification +#### Server 4ffdf4e9 protocol qualification + +`sqlite-atomic-4ffdf4e9-v1` qualifies the v1.4.1 preparation sources at +`4ffdf4e97ad43c55d8718a1df581596db2e6097d` for the bundled OpenAPI digest +`c12901b88b8e958c9cd63469298b9a04b9d5e2b0b4564d83b50f7ae95542519a`. +The qualification wheel is `powercontext-1.4.1.dev176+g4ffdf4e97-py3-none-any.whl`, SHA-256 +`33079ebc5eb61d03dd4cccc0d104c47b0415beab1502a5b01fbc38f2cc30af2b`, built from that clean commit. +All 552 packaged runtime files in `powercontext/` and `powercontext_service_bootstrap/` +match the source bytes at that commit. The runtime manifest digest is +`ea7f63e5e0a16fa7386c3bdea80ea083dd09fe00447a3639391ed114a9e65ec3` +(sorted `wheel/path sha256` lines, with a final newline). +This is a development wheel from the release preparation branch; it is not evidence of a published v1.4.1 package. + +On 2026-10-26, Linux x86_64 with Python 3.14.6 and Rust 1.96.0 ran the existing +`desktop/tests/real_server.py` harness against the extracted wheel and independent SQLite Server processes. +All four modes passed: anonymous loopback, static Bearer, HTTPS with an explicit CA and base path, +and an injected provider with enforced access. The ten recorded operations cover Atomic Memory +save/search/exact revision reads, Scope selection and pagination, identity changes, same-identity +revocation, committed writes with lost responses without replay, and Server survival after client exit. +The report records the source commit above and `desktopWorkingTreeDirty=false`. + +The native client compiled the unmodified product `connections`, `credentials`, `error`, and `transport` +modules and the existing `server_probe.rs` in a standalone library. Dependency versions and checksums +match the product Cargo lock. The standalone library excludes the Tauri GUI shell because the local +Linux environment lacks WebKit development libraries. These results qualify SQLite protocol behavior; +Windows/macOS packaging, native vaults, installed UI, signing, IME, and screen-reader behavior require +their own platform checks. + +From the recorded checkout, use an empty wheel output directory and a platform with the Desktop native +build dependencies to run the existing harness: + +```sh +uv sync --frozen --python 3.14 +uv build --wheel --out-dir desktop/.artifacts/server-wheel +cargo build --locked --manifest-path desktop/src-tauri/Cargo.toml --example server_probe +uv run --no-sync python desktop/tests/fixture_qualification.py --server-commit 4ffdf4e97ad43c55d8718a1df581596db2e6097d +uv run --no-sync python desktop/tests/real_server.py +``` + #### Server 98275dbb protocol qualification `sqlite-atomic-98275dbb-v1` qualifies Server sources at diff --git a/desktop/src-tauri/src/connections/compatibility.json b/desktop/src-tauri/src/connections/compatibility.json index 0ccf064f97..69792277b4 100644 --- a/desktop/src-tauri/src/connections/compatibility.json +++ b/desktop/src-tauri/src/connections/compatibility.json @@ -189,5 +189,24 @@ "search_memory" ], "evidence": "desktop/VALIDATION.md#server-98275dbb-protocol-qualification" + }, + { + "id": "sqlite-atomic-4ffdf4e9-v1", + "serverCommit": "4ffdf4e97ad43c55d8718a1df581596db2e6097d", + "contractSha256": "c12901b88b8e958c9cd63469298b9a04b9d5e2b0b4564d83b50f7ae95542519a", + "artifactSha256": "33079ebc5eb61d03dd4cccc0d104c47b0415beab1502a5b01fbc38f2cc30af2b", + "operations": [ + "get_access_principal", + "get_artifact_revision", + "get_capabilities", + "get_default_scope", + "get_liveness", + "get_readiness", + "get_scope", + "list_scopes", + "remember_memory", + "search_memory" + ], + "evidence": "desktop/VALIDATION.md#server-4ffdf4e9-protocol-qualification" } ] From 80047b999442d3419eb887560ec559d7939fac53 Mon Sep 17 00:00:00 2001 From: hidb4ai Date: Mon, 26 Oct 2026 15:14:14 +0800 Subject: [PATCH 3/4] docs(release): mention unified database upgrades --- website/src/lib/releases.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/website/src/lib/releases.ts b/website/src/lib/releases.ts index 7a76540260..9047df21ed 100644 --- a/website/src/lib/releases.ts +++ b/website/src/lib/releases.ts @@ -44,6 +44,7 @@ export const releases: Release[] = [ 'Reduce repeated database work by consolidating context recall queries, batching Memory lifecycle and authorization checks, reusing exact evidence revisions, and batching cited Experience reads. Scheduled processing skips consumed Scope windows, and Source capture can proceed while Memory extraction is running.', 'Remove duplicate Source text from Atomic Memory extraction requests and compact repeated bodies in additional model projections. Skip reconciliation when a candidate has no comparable memories, and return invalid reconciliation decisions to the model for correction within the configured retry budget.', 'Export, inspect, validate, and restore selected complete Scopes as portable .pcb archives. Preserve exact identities, revisions, evidence, and supported review state; validate conflicts before writes and recognize identical records on replay. This is an offline operator workflow, excludes deployment credentials and derived indexes, and does not replace a complete database backup or schema migration.', + 'Add a unified database upgrade workflow with preflight checks, reviewed plans, explicit backup confirmation, resumable migration, and post-upgrade verification while preserving business history and evidence. Supported upgrade paths remain conditional on acceptance of the exact release artifact.', 'Inspect durable Topic Memory processing blocks and explicitly resume eligible work after correcting its cause. Reject Topic Memory semantic mismatches, make the recall embedding budget configurable, and report why preparation fell back from semantic recall.', 'Expand the experimental Kimi Code integration with workspace Scope bindings and opt-in recommended/full tool profiles, including Handoff, Experience, managed Skill, and Candidate workflows. Initial setup still defaults to the minimal profile; larger profiles require the corresponding Server capabilities and explicit approval for review operations.', 'Improve Desktop shared navigation, Scope recovery, exact revision reading, and draft preservation after failed or ambiguous saves. Add an unsigned macOS app and disk-image preview and fix Linux packaged navigation. Protocol checks and hosted-runner tests do not establish signed distribution, clean-machine installation, or complete native accessibility coverage.', @@ -51,12 +52,13 @@ export const releases: Release[] = [ 'Add managed rotating log files and worker log aggregation, plus dependency and processing observations. Bound HTTP request bodies and active responses, authenticate MCP calls per HTTP request, preserve path authorization, and make local write ownership atomic. Repair eligible ownerless migrated memories without inventing historical owners.', 'Aggregate streamed model output so generation can survive gateway idle timeouts while retaining a complete result. Python applications can explicitly inject the optional Jev reranker with its own credentials and pinned model; it is not enabled by default or configured through the Server environment settings.', 'Guard automatic prompt capture and context preparation, bound long-prompt recall and WorkBuddy Scope discovery, and improve Codex shim resolution and Windows receipt replacement. Reject blank text Sources at creation so they cannot poison later processing; make tool failures identify the rejected field or reason.', - 'Upgrade Server, clients, and Agent integrations together and back up existing databases before migration. Existing collection-based Memory deployments still require the documented Atomic Memory conversion. The registered database migration bundle continues to report server_ready=false; portable archives do not turn it into a complete production upgrade path.', + 'Upgrade Server, clients, and Agent integrations together. Before upgrading an existing database, stop writers, back up its data and configuration, review the migration plan, and complete migration and Server readiness verification before restarting services.', ], zh: [ '合并上下文召回查询,批量处理 Memory 生命周期与授权检查,复用精确证据版本,并批量读取被引用的 Experience,减少重复数据库操作。定时处理跳过已消费的 Scope 窗口,Memory 提取期间仍可采集新的 Source。', '移除 Atomic Memory 提取请求中重复的 Source 正文,并压缩其他模型投影中的重复内容。候选记忆没有可比较对象时跳过协调步骤;模型给出无效协调决策时,在配置的重试预算内反馈原因并请求纠正。', '以可移植 .pcb 归档导出、检查、验证和恢复选定的完整 Scope,保留精确身份、历史版本、证据与受支持的审核状态;写入前检查冲突,重复恢复识别已有相同记录。这是离线运维操作,不包含部署凭据与派生索引,也不替代完整数据库备份或结构迁移。', + '新增统一数据库升级流程,提供升级前检查与计划、显式备份确认、可恢复迁移和升级后验证,并保留业务历史与证据。具体支持的升级路径以目标发行物通过升级验收为准。', '查看持久化的 Topic Memory 处理阻塞,修正原因后显式恢复符合条件的任务;拒绝语义不一致的 Topic Memory。支持配置召回 Embedding 预算,并说明上下文准备为何回退到非语义检索。', '试验性 Kimi Code 集成新增工作目录与 Scope 绑定,并提供需显式选择的 recommended/full 工具档位,覆盖 Handoff、Experience、托管 Skill 与 Candidate 工作流。首次安装仍默认 minimal;更多工具需要相应 Server 能力,审核操作仍需显式批准。', '完善桌面端共享导航、Scope 恢复、精确版本读取,以及保存失败或结果不确定时的草稿保留。新增未签名的 macOS 应用与磁盘镜像预览,修复 Linux 打包后的导航。协议检查和托管运行器测试不代表已完成签名发行、干净机器安装或完整原生无障碍验收。', @@ -64,7 +66,7 @@ export const releases: Release[] = [ '新增托管轮转日志文件、Worker 日志汇聚,以及依赖和处理状态观测。限制 HTTP 请求体和活跃响应规模,按每次 HTTP 请求认证 MCP 调用,保留路径授权约束,并让本地写入与所有权登记原子提交。修复符合条件的迁移后无主记忆,同时保留历史所有权证据的真实边界。', '聚合模型流式输出,让生成过程在网关空闲超时限制下持续接收数据并返回完整结果。Python 应用可显式注入 Jev 重排器,并配置独立凭据与固定模型;该能力默认不启用,也不通过 Server 环境变量配置。', '为自动提示采集与上下文准备增加边界检查,限制长提示召回和 WorkBuddy Scope 发现,完善 Codex shim 解析与 Windows 回执替换。在创建时拒绝空白文本 Source,避免阻塞后续处理;工具失败时明确指出被拒绝的字段或原因。', - 'Server、Client 与 Agent 集成需一起升级,迁移前备份已有数据库。旧集合式 Memory 部署仍需按文档完成 Atomic Memory 转换;已注册的数据库迁移包继续报告 server_ready=false,可移植归档不会使其成为完整的生产升级路径。', + 'Server、Client 与 Agent 集成需一起升级。升级已有数据库前,先停止写入、备份数据与配置并检查迁移计划;完成迁移和 Server 就绪验证后再重启服务。', ], }, installCommand: 'uv tool install --force "powercontext[cli,server]==1.4.1"', From 025646d9d1ca8917d4e97fede54fbe879009d82a Mon Sep 17 00:00:00 2001 From: hidb4ai Date: Mon, 26 Oct 2026 15:57:03 +0800 Subject: [PATCH 4/4] docs(release): clarify v1.4.1 upgrade acceptance --- docs/en/docs/get-started/install-and-run.md | 44 +++++++++++---------- docs/zh/docs/get-started/install-and-run.md | 36 +++++++++-------- scripts/release_version.py | 4 +- tests/test_release_version.py | 10 ++--- website/src/lib/releases.ts | 12 +++--- 5 files changed, 54 insertions(+), 52 deletions(-) diff --git a/docs/en/docs/get-started/install-and-run.md b/docs/en/docs/get-started/install-and-run.md index a13c7000af..be7f2f89b3 100644 --- a/docs/en/docs/get-started/install-and-run.md +++ b/docs/en/docs/get-started/install-and-run.md @@ -174,40 +174,42 @@ For a long-running process, Docker, authentication, or remote access, continue w ## Update or replace an installation -Before upgrading an existing deployment, back up its database and configuration. Version 1.1.0 upgrades legacy -tag-table constraints during Server startup to support Topic Memory tags. Stop the old Server instances and start -one upgraded instance first so the schema upgrade completes before other instances connect. Databases from before -1.0.0 also need the [Artifact processing migration](../operate/artifact-processing-migration.md) if it has not already -been completed. Existing collection-based Memory databases also require the [offline Atomic Memory migration](../operate/atomic-memory-migration.md) -for existing collection databases. Complete any required Artifact processing migration first, stop all writers, then -apply and verify the Atomic Memory migration. Start the new service only after verification returns `ready: true`. -Upgrade the Server, clients, and Agent integrations together. -The Dashboard must be explicitly enabled; static Bearer authentication is optional for local use. See -[Deploy the Server](../operate/deploy-server.md). Remote plaintext HTTP connections require explicit client consent; -see [Connect to a remote Server](../operate/connect-remote-server.md). + +Upgrades from 1.3.0 and 1.4.0 require passing full Server acceptance on SQLite, seekDB and OceanBase. These migration paths are not yet verified; do not upgrade existing databases. + + +Keep existing deployments on their working version until their source version and backend have an accepted upgrade +path. To evaluate a fresh installation, use a separate program environment, database location, and port. Replacing +the installed package does not migrate its database. Backups do not make an unsupported migration supported. + +The support declaration is checked against the release matrix and installed-artifact acceptance; see +[Preparing a release](../../development/releasing.md). Domain-specific +[Processing](../operate/artifact-processing-migration.md) and +[Atomic Memory](../operate/atomic-memory-migration.md) maintenance guides do not establish full Server readiness. Review the [Dream coordinated upgrade requirements](../workflows/review-dream-revisions.md#coordinated-upgrade) before upgrading an existing database. The unified Candidate routes replace `/v1/artifact-candidates/*` with `/v1/candidates/*` without aliases, and Dream Clients require contract 2. Existing Dream storage needs an explicit -migration after unfinished runs have drained. The current unified migration bundle reports `server_ready=false`; -it does not provide a complete production Server upgrade path. Atomic Memory verification alone does not establish -that readiness. Do not bypass `migration_required` or `migration_framework_not_ready`. +migration after unfinished runs have drained. [Full Server migration](../operate/database-migrations.md) requires +`state=ready` and `server_ready=true`; partial Artifact or Atomic Memory verification cannot replace it. Do not bypass +the migration gate. -To upgrade to 1.4.1: +To install 1.4.1 in a separate environment for a fresh deployment: ```bash -uv tool install --force "powercontext[cli,server]==1.4.1" +uv venv /path/to/powercontext-preview +uv pip install --python /path/to/powercontext-preview/bin/python "powercontext[cli,server]==1.4.1" ``` -To replace the installed tool with another Git ref: +To install another Git ref in the separate environment: ```bash -uv tool install --force "powercontext[cli,server] @ git+https://github.com/oceanbase/powercontext.git@" +uv pip install --python /path/to/powercontext-preview/bin/python "powercontext[cli,server] @ git+https://github.com/oceanbase/powercontext.git@" ``` -Update each installed host using its [integration guide](../integrations/index.md) and the same ref. Restart the Server and open a new host session -after updating. Existing SQLite data remains in the user data directory unless `POWERCONTEXT_HOME` or the database URL -changes. +Use the matching ref for clients and Agent integrations connected to the fresh deployment. Preserve the original +deployment's database location and configuration; do not point the new Server at it as an installation check. +On Windows, the virtual environment interpreter is at `Scripts/python.exe`. ## Install a Python role diff --git a/docs/zh/docs/get-started/install-and-run.md b/docs/zh/docs/get-started/install-and-run.md index 66694599bd..255791b52a 100644 --- a/docs/zh/docs/get-started/install-and-run.md +++ b/docs/zh/docs/get-started/install-and-run.md @@ -160,35 +160,37 @@ Agent 诊断见[各自的集成文档](../integrations/index.md);Server 状态 ## 更新或替换安装 -升级已有部署前,先备份数据库和配置。1.1.0 会在 Server 启动时升级旧标签表约束,以支持 Topic Memory 标签。 -先停止旧 Server 实例,再启动一个升级后的实例,待结构升级完成后再启动其他实例。对于 1.0.0 之前的数据库, -如果尚未完成[Artifact 处理迁移](../operate/artifact-processing-migration.md),还需要先执行该迁移。 -升级到 1.4.1 时,已有集合式 Memory 数据库还需完成[Atomic Memory 离线迁移](../operate/atomic-memory-migration.md)。 -先完成所需的 Artifact 处理迁移,再停止所有写入进程,执行 Atomic Memory 迁移并验证 `ready: true` 后启动新服务。 -Server、客户端和 Agent 集成需一起升级。Dashboard 需要显式启用,本地使用可选择静态 Bearer 认证, -见[部署 Server](../operate/deploy-server.md);远程明文 HTTP 连接需要客户端明确同意, -见[连接远程 Server](../operate/connect-remote-server.md)。 + +1.3.0 和 1.4.0 升级必须通过 SQLite、seekDB 和 OceanBase 的完整 Server 验收。当前迁移路径尚未验证,请勿升级已有数据库。 + + +已有部署应保持当前可用版本,等待来源版本及后端具备已验收的升级路径。试用新建部署时,请使用独立程序环境、 +数据库位置和端口。替换程序包不会完成数据库迁移;备份也不能使不受支持的迁移变为可用。 + +支持声明由发布矩阵和安装包验收共同检查,详见[准备发布](../../development/releasing.md)。 +[Artifact 处理迁移](../operate/artifact-processing-migration.md)和 +[Atomic Memory 迁移](../operate/atomic-memory-migration.md)各自的验证结果不代表完整 Server 就绪。 升级已有数据库前,请先检查 [Dream 协调升级要求](../workflows/review-dream-revisions.md#协调升级)。 统一 Candidate 路由将 `/v1/artifact-candidates/*` 替换为 `/v1/candidates/*`,不提供别名,Dream 客户端要求契约 2。 -已有 Dream 存储需排空未完成任务后显式迁移。当前统一迁移包仍报告 `server_ready=false`,尚不构成完整的生产 -Server 升级路径;Atomic Memory 验证通过也不代表整体迁移就绪。不要绕过 `migration_required` 或 -`migration_framework_not_ready`。 +已有 Dream 存储需排空未完成任务后显式迁移。[完整 Server 迁移](../operate/database-migrations.md)要求 +`state=ready` 和 `server_ready=true`;局部 Artifact 或 Atomic Memory 验证不能替代它。不要绕过迁移门禁。 -升级到 1.4.1: +安装 1.4.1 到独立环境以试用新建部署: ```bash -uv tool install --force "powercontext[cli,server]==1.4.1" +uv venv /path/to/powercontext-preview +uv pip install --python /path/to/powercontext-preview/bin/python "powercontext[cli,server]==1.4.1" ``` -使用其他 Git ref 替换现有工具: +在独立环境安装其他 Git ref: ```bash -uv tool install --force "powercontext[cli,server] @ git+https://github.com/oceanbase/powercontext.git@" +uv pip install --python /path/to/powercontext-preview/bin/python "powercontext[cli,server] @ git+https://github.com/oceanbase/powercontext.git@" ``` -按[各自的集成文档](../integrations/index.md)更新已安装宿主,并使用同一个 ref。更新后重启 Server,再开启新的宿主会话。只要没有修改 -`POWERCONTEXT_HOME` 或数据库 URL,现有 SQLite 数据会继续保留。 +连接新建部署的客户端及 Agent 集成应使用匹配的 ref。保留原部署的数据库位置和配置,不要用原数据库测试新版启动。 +Windows 的虚拟环境解释器位于 `Scripts/python.exe`。 ## 为 Python 项目安装角色 diff --git a/scripts/release_version.py b/scripts/release_version.py index 57bf563e31..08bf502158 100644 --- a/scripts/release_version.py +++ b/scripts/release_version.py @@ -45,13 +45,13 @@ *INSTALL_REFERENCES, r"PowerContext ", r"package `", - r"^To upgrade to ", + r"^To install ", ), "docs/zh/docs/get-started/install-and-run.md": ( *INSTALL_REFERENCES, r"PowerContext ", r"Python 包版本为 `", - r"^升级到 ", + r"^安装 ", ), "integrations/dsh/plugins/powercontext/README.md": INSTALL_REFERENCES, } diff --git a/tests/test_release_version.py b/tests/test_release_version.py index 9629fd7c07..5d5b97eef3 100644 --- a/tests/test_release_version.py +++ b/tests/test_release_version.py @@ -98,13 +98,11 @@ def test_release_updates_installation_references_and_preserves_history(release_r english = (release_repo / "docs/en/docs/get-started/install-and-run.md").read_text(encoding="utf-8") chinese = (release_repo / "docs/zh/docs/get-started/install-and-run.md").read_text(encoding="utf-8") assert f"package `{version}`" in english - assert f"To upgrade to {version}:" in english + assert f"To install {version} in a separate environment" in english assert f"Python 包版本为 `{version}`" in chinese - assert f"升级到 {version}" in chinese - assert "Version 1.1.0 upgrades legacy" in english - assert "1.0.0 also need" in english - assert "1.1.0 会在 Server 启动时升级旧标签表约束" in chinese - assert "对于 1.0.0 之前的数据库" in chinese + assert f"安装 {version} 到独立环境" in chinese + assert "Upgrades from 1.3.0 and 1.4.0 require" in english + assert "1.3.0 和 1.4.0 升级必须" in chinese dsh = (release_repo / "integrations/dsh/plugins/powercontext/README.md").read_text(encoding="utf-8") assert "Release 1.1.0 includes direct-operation Scope failure handling" in dsh for relative, original in preserved.items(): diff --git a/website/src/lib/releases.ts b/website/src/lib/releases.ts index 9047df21ed..4404ec77d0 100644 --- a/website/src/lib/releases.ts +++ b/website/src/lib/releases.ts @@ -36,15 +36,15 @@ export const releases: Release[] = [ zh: '优化检索与记忆写入 · 支持可移植归档 · 完善 Agent 与桌面工作流', }, summary: { - en: 'PowerContext 1.4.1 reduces repeated database work during recall and Memory writes, removes duplicate Source text from extraction requests, and adds offline archive export and restore. It also expands Kimi Code workflows, improves Desktop navigation and save recovery, and adds clearer processing diagnostics and managed logs.', - zh: 'PowerContext 1.4.1 减少检索和记忆写入中的重复数据库操作,移除提取请求中重复的 Source 正文,并支持离线归档导出与恢复。同时扩展 Kimi Code 工作流,完善桌面端导航与保存失败后的恢复操作,提供更清晰的处理诊断与托管日志。', + en: 'PowerContext 1.4.1 reduces repeated database work during recall and Memory writes, removes duplicate Source text from extraction requests, and adds offline archive export and restore. It also expands Kimi Code workflows, improves Desktop navigation and save recovery, and adds dependency and processing observations alongside managed logs.', + zh: 'PowerContext 1.4.1 减少检索和记忆写入中的重复数据库操作,移除提取请求中重复的 Source 正文,并支持离线归档导出与恢复。同时扩展 Kimi Code 工作流,完善桌面端导航与保存失败后的恢复操作,增加依赖和处理状态观测,并提供托管日志。', }, changes: { en: [ 'Reduce repeated database work by consolidating context recall queries, batching Memory lifecycle and authorization checks, reusing exact evidence revisions, and batching cited Experience reads. Scheduled processing skips consumed Scope windows, and Source capture can proceed while Memory extraction is running.', 'Remove duplicate Source text from Atomic Memory extraction requests and compact repeated bodies in additional model projections. Skip reconciliation when a candidate has no comparable memories, and return invalid reconciliation decisions to the model for correction within the configured retry budget.', 'Export, inspect, validate, and restore selected complete Scopes as portable .pcb archives. Preserve exact identities, revisions, evidence, and supported review state; validate conflicts before writes and recognize identical records on replay. This is an offline operator workflow, excludes deployment credentials and derived indexes, and does not replace a complete database backup or schema migration.', - 'Add a unified database upgrade workflow with preflight checks, reviewed plans, explicit backup confirmation, resumable migration, and post-upgrade verification while preserving business history and evidence. Supported upgrade paths remain conditional on acceptance of the exact release artifact.', + 'Complete the Server migration framework with registered source recognition, schema and data transitions, resumable recovery, and full Server readiness checks. Upgrade support requires acceptance against the exact release artifact; the twelve-case release gate covers 1.3.0 across SQLite, seekDB, and OceanBase, while the 1.4.0 bridge is outside that gate.', 'Inspect durable Topic Memory processing blocks and explicitly resume eligible work after correcting its cause. Reject Topic Memory semantic mismatches, make the recall embedding budget configurable, and report why preparation fell back from semantic recall.', 'Expand the experimental Kimi Code integration with workspace Scope bindings and opt-in recommended/full tool profiles, including Handoff, Experience, managed Skill, and Candidate workflows. Initial setup still defaults to the minimal profile; larger profiles require the corresponding Server capabilities and explicit approval for review operations.', 'Improve Desktop shared navigation, Scope recovery, exact revision reading, and draft preservation after failed or ambiguous saves. Add an unsigned macOS app and disk-image preview and fix Linux packaged navigation. Protocol checks and hosted-runner tests do not establish signed distribution, clean-machine installation, or complete native accessibility coverage.', @@ -52,13 +52,13 @@ export const releases: Release[] = [ 'Add managed rotating log files and worker log aggregation, plus dependency and processing observations. Bound HTTP request bodies and active responses, authenticate MCP calls per HTTP request, preserve path authorization, and make local write ownership atomic. Repair eligible ownerless migrated memories without inventing historical owners.', 'Aggregate streamed model output so generation can survive gateway idle timeouts while retaining a complete result. Python applications can explicitly inject the optional Jev reranker with its own credentials and pinned model; it is not enabled by default or configured through the Server environment settings.', 'Guard automatic prompt capture and context preparation, bound long-prompt recall and WorkBuddy Scope discovery, and improve Codex shim resolution and Windows receipt replacement. Reject blank text Sources at creation so they cannot poison later processing; make tool failures identify the rejected field or reason.', - 'Upgrade Server, clients, and Agent integrations together. Before upgrading an existing database, stop writers, back up its data and configuration, review the migration plan, and complete migration and Server readiness verification before restarting services.', + 'Upgrade Server, clients, and Agent integrations together. Upgrade an existing database only when its source version and backend have an accepted path for the exact target artifact. Stop writers, back up its data and configuration, review the migration plan, and complete migration and full Server readiness verification before restarting services.', ], zh: [ '合并上下文召回查询,批量处理 Memory 生命周期与授权检查,复用精确证据版本,并批量读取被引用的 Experience,减少重复数据库操作。定时处理跳过已消费的 Scope 窗口,Memory 提取期间仍可采集新的 Source。', '移除 Atomic Memory 提取请求中重复的 Source 正文,并压缩其他模型投影中的重复内容。候选记忆没有可比较对象时跳过协调步骤;模型给出无效协调决策时,在配置的重试预算内反馈原因并请求纠正。', '以可移植 .pcb 归档导出、检查、验证和恢复选定的完整 Scope,保留精确身份、历史版本、证据与受支持的审核状态;写入前检查冲突,重复恢复识别已有相同记录。这是离线运维操作,不包含部署凭据与派生索引,也不替代完整数据库备份或结构迁移。', - '新增统一数据库升级流程,提供升级前检查与计划、显式备份确认、可恢复迁移和升级后验证,并保留业务历史与证据。具体支持的升级路径以目标发行物通过升级验收为准。', + '完善 Server 迁移框架,补齐已登记来源识别、结构与数据转换、中断恢复和完整 Server 就绪校验。升级支持以目标发行物通过验收为准;发布门禁覆盖 1.3.0 在 SQLite、seekDB、OceanBase 上的十二个组合,1.4.0 桥接不在该门禁范围内。', '查看持久化的 Topic Memory 处理阻塞,修正原因后显式恢复符合条件的任务;拒绝语义不一致的 Topic Memory。支持配置召回 Embedding 预算,并说明上下文准备为何回退到非语义检索。', '试验性 Kimi Code 集成新增工作目录与 Scope 绑定,并提供需显式选择的 recommended/full 工具档位,覆盖 Handoff、Experience、托管 Skill 与 Candidate 工作流。首次安装仍默认 minimal;更多工具需要相应 Server 能力,审核操作仍需显式批准。', '完善桌面端共享导航、Scope 恢复、精确版本读取,以及保存失败或结果不确定时的草稿保留。新增未签名的 macOS 应用与磁盘镜像预览,修复 Linux 打包后的导航。协议检查和托管运行器测试不代表已完成签名发行、干净机器安装或完整原生无障碍验收。', @@ -66,7 +66,7 @@ export const releases: Release[] = [ '新增托管轮转日志文件、Worker 日志汇聚,以及依赖和处理状态观测。限制 HTTP 请求体和活跃响应规模,按每次 HTTP 请求认证 MCP 调用,保留路径授权约束,并让本地写入与所有权登记原子提交。修复符合条件的迁移后无主记忆,同时保留历史所有权证据的真实边界。', '聚合模型流式输出,让生成过程在网关空闲超时限制下持续接收数据并返回完整结果。Python 应用可显式注入 Jev 重排器,并配置独立凭据与固定模型;该能力默认不启用,也不通过 Server 环境变量配置。', '为自动提示采集与上下文准备增加边界检查,限制长提示召回和 WorkBuddy Scope 发现,完善 Codex shim 解析与 Windows 回执替换。在创建时拒绝空白文本 Source,避免阻塞后续处理;工具失败时明确指出被拒绝的字段或原因。', - 'Server、Client 与 Agent 集成需一起升级。升级已有数据库前,先停止写入、备份数据与配置并检查迁移计划;完成迁移和 Server 就绪验证后再重启服务。', + 'Server、Client 与 Agent 集成需一起升级。只有来源版本与后端具备针对目标发行物的已验收升级路径时,才能升级已有数据库。先停止写入、备份数据与配置并检查迁移计划;完成迁移和完整 Server 就绪验证后再重启服务。', ], }, installCommand: 'uv tool install --force "powercontext[cli,server]==1.4.1"',