Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0490112e9d | ||
|
|
2ee2371e0c |
No files matched your search
@@ -2,6 +2,16 @@
|
|||||||
|
|
||||||
Hy Memory and MemHub are versioned and released independently.
|
Hy Memory and MemHub are versioned and released independently.
|
||||||
|
|
||||||
|
## Hy Memory 2.0.3 — 2026-10-17
|
||||||
|
|
||||||
|
- Added an optional runtime HTTP transport factory so embedded products can
|
||||||
|
enforce request budgets without wrapping or restricting SDK local-store
|
||||||
|
access.
|
||||||
|
- Published
|
||||||
|
[`hy-memory==2.0.3`](https://pypi.org/project/hy-memory/2.0.3/) with
|
||||||
|
unchanged memory extraction, reconciliation, storage, and Coding/Working
|
||||||
|
behavior.
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
- Removed MemHub's task-scoped HyPermission store wrappers and global
|
- Removed MemHub's task-scoped HyPermission store wrappers and global
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ English | [中文](README.zh.md)
|
|||||||
|
|
||||||
## Latest News
|
## Latest News
|
||||||
|
|
||||||
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **Released** **Hy Memory 2.0 (`hy-memory==2.0.2`)** on [PyPI](https://pypi.org/project/hy-memory/2.0.2/) and open-sourced the **Hy-Memory** monorepo together with **[MemHub](memhub/README.md)**!
|
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **Released** **Hy Memory 2.0 (`hy-memory==2.0.3`)** on [PyPI](https://pypi.org/project/hy-memory/2.0.3/) and open-sourced the **Hy-Memory** monorepo together with **[MemHub](memhub/README.md)**!
|
||||||
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **Open-sourced** **[Hy-Memory-30B-A3B](https://huggingface.co/tencent/Hy-Memory-30B-A3B)** on Hugging Face along with its [technical report](https://arxiv.org/abs/2610.22196) on attributed reinforcement learning for long-term memory writing!
|
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **Open-sourced** **[Hy-Memory-30B-A3B](https://huggingface.co/tencent/Hy-Memory-30B-A3B)** on Hugging Face along with its [technical report](https://arxiv.org/abs/2610.22196) on attributed reinforcement learning for long-term memory writing!
|
||||||
* *<mark>[new]</mark>* 🔥🔥 **[2026-09]**: 📊 **Released** **[CMB: A Coding Memory Benchmark for Long-Horizon and Interleaved Coding Agents](docs/papers/CMB_A_Coding_Memory_Benchmark_for_Long_Horizon_and_Interleaved_Coding_Agents.pdf)** (submitted to **ICLR 2027**).
|
* *<mark>[new]</mark>* 🔥🔥 **[2026-09]**: 📊 **Released** **[CMB: A Coding Memory Benchmark for Long-Horizon and Interleaved Coding Agents](docs/papers/CMB_A_Coding_Memory_Benchmark_for_Long_Horizon_and_Interleaved_Coding_Agents.pdf)** (submitted to **ICLR 2027**).
|
||||||
* *<mark>[new]</mark>* 🔥🔥 **[2026-08]**: 🎉 **Accepted** at **EMNLP 2026**: **[Memory Beyond Recall: A Dual-Process Cognitive Memory System for Self-Evolving LLM Agents](https://arxiv.org/abs/2606.09483)**!
|
* *<mark>[new]</mark>* 🔥🔥 **[2026-08]**: 🎉 **Accepted** at **EMNLP 2026**: **[Memory Beyond Recall: A Dual-Process Cognitive Memory System for Self-Evolving LLM Agents](https://arxiv.org/abs/2606.09483)**!
|
||||||
@@ -63,13 +63,13 @@ Welcome to the **Hy Memory Research Family**, covering cognitive chat memory, lo
|
|||||||
### 1. Installation
|
### 1. Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install hy-memory==2.0.2 # core (includes ChromaDB and Kuzu)
|
pip install hy-memory==2.0.3 # core (includes ChromaDB and Kuzu)
|
||||||
pip install "hy-memory[qdrant]==2.0.2" # + Qdrant
|
pip install "hy-memory[qdrant]==2.0.3" # + Qdrant
|
||||||
pip install "hy-memory[faiss]==2.0.2" # + FAISS
|
pip install "hy-memory[faiss]==2.0.3" # + FAISS
|
||||||
pip install "hy-memory[graph]==2.0.2" # + Neo4j
|
pip install "hy-memory[graph]==2.0.3" # + Neo4j
|
||||||
pip install "hy-memory[mysql]==2.0.2" # + MySQL cache
|
pip install "hy-memory[mysql]==2.0.3" # + MySQL cache
|
||||||
pip install "hy-memory[rerank]==2.0.2" # + local multilingual cross-encoder rerank
|
pip install "hy-memory[rerank]==2.0.3" # + local multilingual cross-encoder rerank
|
||||||
pip install "hy-memory[all]==2.0.2" # everything
|
pip install "hy-memory[all]==2.0.3" # everything
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Configuration
|
### 2. Configuration
|
||||||
|
|||||||
+8
-8
@@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
## 最新动态
|
## 最新动态
|
||||||
|
|
||||||
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **正式发布** **Hy Memory 2.0 (`hy-memory==2.0.2`)**(已上线 [PyPI](https://pypi.org/project/hy-memory/2.0.2/)),并开源 **Hy-Memory** monorepo 与 **[MemHub](memhub/README.md)**!
|
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **正式发布** **Hy Memory 2.0 (`hy-memory==2.0.3`)**(已上线 [PyPI](https://pypi.org/project/hy-memory/2.0.3/)),并开源 **Hy-Memory** monorepo 与 **[MemHub](memhub/README.md)**!
|
||||||
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **模型开源** 在 Hugging Face 发布 **[Hy-Memory-30B-A3B](https://huggingface.co/tencent/Hy-Memory-30B-A3B)** 长期记忆写入模型及[技术报告](https://arxiv.org/abs/2610.22196)!
|
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **模型开源** 在 Hugging Face 发布 **[Hy-Memory-30B-A3B](https://huggingface.co/tencent/Hy-Memory-30B-A3B)** 长期记忆写入模型及[技术报告](https://arxiv.org/abs/2610.22196)!
|
||||||
* *<mark>[new]</mark>* 🔥🔥 **[2026-09]**: 📊 **基准与方法发布** 推出长周期与交错式编程记忆评测基准 **[CMB: A Coding Memory Benchmark for Long-Horizon and Interleaved Coding Agents](docs/papers/CMB_A_Coding_Memory_Benchmark_for_Long_Horizon_and_Interleaved_Coding_Agents.pdf)**(已投稿 **ICLR 2027**)。
|
* *<mark>[new]</mark>* 🔥🔥 **[2026-09]**: 📊 **基准与方法发布** 推出长周期与交错式编程记忆评测基准 **[CMB: A Coding Memory Benchmark for Long-Horizon and Interleaved Coding Agents](docs/papers/CMB_A_Coding_Memory_Benchmark_for_Long_Horizon_and_Interleaved_Coding_Agents.pdf)**(已投稿 **ICLR 2027**)。
|
||||||
* *<mark>[new]</mark>* 🔥🔥 **[2026-08]**: 🎉 **论文录用** 双系统认知记忆架构论文 **[Memory Beyond Recall: A Dual-Process Cognitive Memory System for Self-Evolving LLM Agents](https://arxiv.org/abs/2606.09483)** 被 **EMNLP 2026** 接收!
|
* *<mark>[new]</mark>* 🔥🔥 **[2026-08]**: 🎉 **论文录用** 双系统认知记忆架构论文 **[Memory Beyond Recall: A Dual-Process Cognitive Memory System for Self-Evolving LLM Agents](https://arxiv.org/abs/2606.09483)** 被 **EMNLP 2026** 接收!
|
||||||
@@ -63,13 +63,13 @@
|
|||||||
### 1. 安装
|
### 1. 安装
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install hy-memory==2.0.2 # 核心(含 ChromaDB 与 Kuzu)
|
pip install hy-memory==2.0.3 # 核心(含 ChromaDB 与 Kuzu)
|
||||||
pip install "hy-memory[qdrant]==2.0.2" # + Qdrant
|
pip install "hy-memory[qdrant]==2.0.3" # + Qdrant
|
||||||
pip install "hy-memory[faiss]==2.0.2" # + FAISS
|
pip install "hy-memory[faiss]==2.0.3" # + FAISS
|
||||||
pip install "hy-memory[graph]==2.0.2" # + Neo4j
|
pip install "hy-memory[graph]==2.0.3" # + Neo4j
|
||||||
pip install "hy-memory[mysql]==2.0.2" # + MySQL 缓存
|
pip install "hy-memory[mysql]==2.0.3" # + MySQL 缓存
|
||||||
pip install "hy-memory[rerank]==2.0.2" # + 本地多语言 cross-encoder rerank
|
pip install "hy-memory[rerank]==2.0.3" # + 本地多语言 cross-encoder rerank
|
||||||
pip install "hy-memory[all]==2.0.2" # 全部
|
pip install "hy-memory[all]==2.0.3" # 全部
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. 配置
|
### 2. 配置
|
||||||
|
|||||||
+1
-1
@@ -37,7 +37,7 @@ do not belong in the public source tree.
|
|||||||
- Root GitHub workflows run SDK and MemHub checks from their respective working
|
- Root GitHub workflows run SDK and MemHub checks from their respective working
|
||||||
directories. Native lifecycle workflows produce reviewable Actions artifacts;
|
directories. Native lifecycle workflows produce reviewable Actions artifacts;
|
||||||
tag releases remain fail-closed on public identity, signing and notarization.
|
tag releases remain fail-closed on public identity, signing and notarization.
|
||||||
- Hy Memory is published as `hy-memory==2.0.2`. MemHub pins that public
|
- Hy Memory is published as `hy-memory==2.0.3`. MemHub pins that public
|
||||||
distribution; its selected npm package is `memhub-cli`, which is not yet
|
distribution; its selected npm package is `memhub-cli`, which is not yet
|
||||||
published.
|
published.
|
||||||
- Hy-Memory source uses Apache-2.0 at the repository root. Third-party
|
- Hy-Memory source uses Apache-2.0 at the repository root. Third-party
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
## 安装与快速开始
|
## 安装与快速开始
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install hy-memory==2.0.2
|
pip install hy-memory==2.0.3
|
||||||
|
|
||||||
# 可选后端
|
# 可选后端
|
||||||
pip install 'hy-memory[qdrant]==2.0.1'
|
pip install 'hy-memory[qdrant]==2.0.1'
|
||||||
|
|||||||
+2
-2
@@ -15,12 +15,12 @@ write、search,并把搜索结果格式化为可交给模型的 memory text ch
|
|||||||
|
|
||||||
```text
|
```text
|
||||||
distribution: hy-memory
|
distribution: hy-memory
|
||||||
version: 2.0.2
|
version: 2.0.3
|
||||||
mode: 按运行时配置选择
|
mode: 按运行时配置选择
|
||||||
reader: hybrid
|
reader: hybrid
|
||||||
```
|
```
|
||||||
|
|
||||||
仓库 pin、lockfile 和运行时版本守卫均固定到公开的 `hy-memory==2.0.2`。
|
仓库 pin、lockfile 和运行时版本守卫均固定到公开的 `hy-memory==2.0.3`。
|
||||||
MemHub 在本地 Runtime 内嵌入 SDK,但不绕过自身的来源授权、模型授权、Evidence、
|
MemHub 在本地 Runtime 内嵌入 SDK,但不绕过自身的来源授权、模型授权、Evidence、
|
||||||
Governance 和撤权边界。
|
Governance 和撤权边界。
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@ SDK 和记忆引擎。One Memory / `one-memory` 是历史模块、数据目录
|
|||||||
|
|
||||||
## 发行与平台合同
|
## 发行与平台合同
|
||||||
|
|
||||||
公共 Python SDK 为 `hy-memory==2.0.2`。MemHub 源码版本为 `1.0.2`
|
公共 Python SDK 为 `hy-memory==2.0.3`。MemHub 源码版本为 `1.0.2`
|
||||||
(build 6),GitHub 仓库为
|
(build 6),GitHub 仓库为
|
||||||
[`Tencent-Hunyuan/Hy-Memory`](https://github.com/Tencent-Hunyuan/Hy-Memory),npm 包名为
|
[`Tencent-Hunyuan/Hy-Memory`](https://github.com/Tencent-Hunyuan/Hy-Memory),npm 包名为
|
||||||
`memhub-cli`。当前代码架构见
|
`memhub-cli`。当前代码架构见
|
||||||
@@ -101,7 +101,7 @@ MemHub 的 SQLite 数据默认位于 `~/.one-memory`,不在 npm 包或 Runtime
|
|||||||
|
|
||||||
## Hy Memory
|
## Hy Memory
|
||||||
|
|
||||||
当前开发依赖固定为公开 PyPI 包 `hy-memory==2.0.2`。SDK 配置、权限边界及 search
|
当前开发依赖固定为公开 PyPI 包 `hy-memory==2.0.3`。SDK 配置、权限边界及 search
|
||||||
返回格式见 [`MEMORY.md`](MEMORY.md)。HY search 返回的 `content` 已包含 SDK 统一生成的
|
返回格式见 [`MEMORY.md`](MEMORY.md)。HY search 返回的 `content` 已包含 SDK 统一生成的
|
||||||
逻辑时间和演化上下文;调用方不应再次转换时间戳或重复拼接 `When`。
|
逻辑时间和演化上下文;调用方不应再次转换时间戳或重复拼接 `When`。
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
"dataLicense": "CC0-1.0",
|
"dataLicense": "CC0-1.0",
|
||||||
"SPDXID": "SPDXRef-DOCUMENT",
|
"SPDXID": "SPDXRef-DOCUMENT",
|
||||||
"name": "one-memory",
|
"name": "one-memory",
|
||||||
"documentNamespace": "https://one-memory.local/spdx/2026-10-15T17:26:47Z",
|
"documentNamespace": "https://one-memory.local/spdx/2026-10-17T11:07:57Z",
|
||||||
"creationInfo": {
|
"creationInfo": {
|
||||||
"created": "2026-10-15T17:26:47Z",
|
"created": "2026-10-17T11:07:57Z",
|
||||||
"creators": [
|
"creators": [
|
||||||
"Tool: one-memory-generate-sbom"
|
"Tool: one-memory-generate-sbom"
|
||||||
]
|
]
|
||||||
@@ -2335,7 +2335,7 @@
|
|||||||
{
|
{
|
||||||
"SPDXID": "SPDXRef-Package-hy-memory",
|
"SPDXID": "SPDXRef-Package-hy-memory",
|
||||||
"name": "hy-memory",
|
"name": "hy-memory",
|
||||||
"versionInfo": "2.0.2",
|
"versionInfo": "2.0.3",
|
||||||
"downloadLocation": "NOASSERTION",
|
"downloadLocation": "NOASSERTION",
|
||||||
"filesAnalyzed": false,
|
"filesAnalyzed": false,
|
||||||
"licenseConcluded": "Apache-2.0",
|
"licenseConcluded": "Apache-2.0",
|
||||||
|
|||||||
@@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
MemHub itself is licensed under Apache-2.0 (see `LICENSE`).
|
MemHub itself is licensed under Apache-2.0 (see `LICENSE`).
|
||||||
It bundles the runtime dependencies listed below.
|
It bundles the runtime dependencies listed below.
|
||||||
Generated from the installed dependency tree on 2026-10-15T17:26:47Z
|
Generated from the installed dependency tree on 2026-10-17T11:07:57Z
|
||||||
by `python3 scripts/generate_sbom.py`. Do not edit by hand.
|
by `python3 scripts/generate_sbom.py`. Do not edit by hand.
|
||||||
|
|
||||||
Per-package license texts are not reproduced here yet; the license
|
Per-package license texts are not reproduced here yet; the license
|
||||||
column is filled in as part of release review, and the SBOM records
|
column is filled in as part of release review, and the SBOM records
|
||||||
`NOASSERTION` until then rather than guessing.
|
`NOASSERTION` until then rather than guessing.
|
||||||
|
|
||||||
## hy-memory 2.0.2
|
## hy-memory 2.0.3
|
||||||
|
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ dependencies = [
|
|||||||
"fastapi>=0.141.1",
|
"fastapi>=0.141.1",
|
||||||
"filelock>=3.32.4",
|
"filelock>=3.32.4",
|
||||||
# Public SDK version validated against MemHub's permission and recall contracts.
|
# Public SDK version validated against MemHub's permission and recall contracts.
|
||||||
"hy-memory==2.0.2",
|
"hy-memory==2.0.3",
|
||||||
# Retrieval's derived vector index directly consumes these locked versions.
|
# Retrieval's derived vector index directly consumes these locked versions.
|
||||||
"chromadb==1.5.9",
|
"chromadb==1.5.9",
|
||||||
"numpy==2.5.2",
|
"numpy==2.5.2",
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ from pathlib import Path
|
|||||||
from typing import Literal, cast
|
from typing import Literal, cast
|
||||||
|
|
||||||
HY_MEMORY_DISTRIBUTION = "hy-memory"
|
HY_MEMORY_DISTRIBUTION = "hy-memory"
|
||||||
HY_MEMORY_VERSION = "2.0.2"
|
HY_MEMORY_VERSION = "2.0.3"
|
||||||
HY_MEMORY_NAMESPACE = "governed-v2"
|
HY_MEMORY_NAMESPACE = "governed-v2"
|
||||||
DiagnosticLogLevel = Literal["error", "warning", "info", "debug"]
|
DiagnosticLogLevel = Literal["error", "warning", "info", "debug"]
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ _COLLECTION_LOGGERS = (
|
|||||||
# One Memory deliberately stays on ultra because its existing, user-visible
|
# One Memory deliberately stays on ultra because its existing, user-visible
|
||||||
# profile/graph flow calls digest(), which the pinned public SDK exposes only
|
# profile/graph flow calls digest(), which the pinned public SDK exposes only
|
||||||
# for ultra clients. Reader and non-reranker behavior remain pinned for
|
# for ultra clients. Reader and non-reranker behavior remain pinned for
|
||||||
# compatibility with public SDK 2.0.2.
|
# compatibility with public SDK 2.0.3.
|
||||||
HY_MEMORY_MODE = "ultra"
|
HY_MEMORY_MODE = "ultra"
|
||||||
# The SDK only recognises `legacy` and `hybrid` (see
|
# The SDK only recognises `legacy` and `hybrid` (see
|
||||||
# hy_memory/pipelines/_retrieval/config.py: `ALL_READERS = (READER_LEGACY,
|
# hy_memory/pipelines/_retrieval/config.py: `ALL_READERS = (READER_LEGACY,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
The result decides whether the `unknown` job state can ever be retired, so it
|
The result decides whether the `unknown` job state can ever be retired, so it
|
||||||
is probed against the installed SDK rather than written down from memory.
|
is probed against the installed SDK rather than written down from memory.
|
||||||
|
|
||||||
What was verified against `hy-memory==2.0.2`:
|
What was verified against `hy-memory==2.0.3`:
|
||||||
|
|
||||||
- `HyMemoryClient.add(..., request_id=...)` accepts a caller-supplied id and
|
- `HyMemoryClient.add(..., request_id=...)` accepts a caller-supplied id and
|
||||||
echoes it back. It is described as a request/receipt handle, and the SDK
|
echoes it back. It is described as a request/receipt handle, and the SDK
|
||||||
|
|||||||
@@ -1326,7 +1326,7 @@ def test_hy_runtime_matches_public_sdk_without_reranker_or_service_backends(
|
|||||||
config = build_hy_memory_config(profile, api_key=None, data_dir=tmp_path)
|
config = build_hy_memory_config(profile, api_key=None, data_dir=tmp_path)
|
||||||
|
|
||||||
assert HY_MEMORY_DISTRIBUTION == "hy-memory"
|
assert HY_MEMORY_DISTRIBUTION == "hy-memory"
|
||||||
assert HY_MEMORY_VERSION == "2.0.2"
|
assert HY_MEMORY_VERSION == "2.0.3"
|
||||||
assert HY_MEMORY_MODE == "ultra"
|
assert HY_MEMORY_MODE == "ultra"
|
||||||
assert HY_MEMORY_READER == "hybrid"
|
assert HY_MEMORY_READER == "hybrid"
|
||||||
assert os.environ["MEMORY_MODE"] == "ultra"
|
assert os.environ["MEMORY_MODE"] == "ultra"
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ def test_no_idempotency_key_means_unknown_must_remain() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_measured_sdk_verdict_is_recorded() -> None:
|
def test_measured_sdk_verdict_is_recorded() -> None:
|
||||||
"""Pin the measured answer for `hy-memory==2.0.2`.
|
"""Pin the measured answer for `hy-memory==2.0.3`.
|
||||||
|
|
||||||
The finding: `add()` takes a `request_id` but nothing de-duplicates on it,
|
The finding: `add()` takes a `request_id` but nothing de-duplicates on it,
|
||||||
while `MemoryInspector.get_pipeline_logs(request_id=...)` can look the
|
while `MemoryInspector.get_pipeline_logs(request_id=...)` can look the
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Dev history: when the model extracted no fact, the coding extractor stored the
|
|||||||
raw dialogue as a working fact, and with no words of the person's it took the
|
raw dialogue as a working fact, and with no words of the person's it took the
|
||||||
first 600 characters of the rendered trace. MemHub showed that as the memory
|
first 600 characters of the rendered trace. MemHub showed that as the memory
|
||||||
content, which is where `[0] assistant: ... [1] tool(?): ...` came from
|
content, which is where `[0] assistant: ... [1] tool(?): ...` came from
|
||||||
(D87). The SDK fix is present in 2.0.2: it does not store that fallback by
|
(D87). The SDK fix remains present in 2.0.3: it does not store that fallback by
|
||||||
default.
|
default.
|
||||||
|
|
||||||
This pins the default here, so a future bump that turns it back on, or our own
|
This pins the default here, so a future bump that turns it back on, or our own
|
||||||
|
|||||||
Generated
+4
-4
@@ -991,7 +991,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hy-memory"
|
name = "hy-memory"
|
||||||
version = "2.0.2"
|
version = "2.0.3"
|
||||||
source = { registry = "https://pypi.org/simple" }
|
source = { registry = "https://pypi.org/simple" }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "chromadb" },
|
{ name = "chromadb" },
|
||||||
@@ -1008,9 +1008,9 @@ dependencies = [
|
|||||||
{ name = "scikit-learn" },
|
{ name = "scikit-learn" },
|
||||||
{ name = "tiktoken" },
|
{ name = "tiktoken" },
|
||||||
]
|
]
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/b4/45/367b6d319f8f6c4fb99ee84d440e19616e64096fa50c3cc7672f7ef98653/hy_memory-2.0.2.tar.gz", hash = "sha256:1ba3b0d0bb1eb15ce9bf9b055190449614f93b550d02fb1646469dd01162c77e", size = 823220, upload-time = "2026-10-16T16:01:48.002Z" }
|
sdist = { url = "https://files.pythonhosted.org/packages/e0/12/10e91468d1331eff8380e6b32c1e8784413660a299005ce07ac3e60e90bd/hy_memory-2.0.3.tar.gz", hash = "sha256:cdebd46b16ebe3cb04c89475f9044d30c6cc9065796be369f5d9607410a5c96b", size = 823596, upload-time = "2026-10-17T11:06:23.093Z" }
|
||||||
wheels = [
|
wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/1f/0e/2a95b967ec29165fe36e3f6d7da3e07baeb6d7404a023d4b816223c8af60/hy_memory-2.0.2-py3-none-any.whl", hash = "sha256:e76419c3313db4fd4850249ec833ce7f98d17049a3e346b06bb1461038021384", size = 886789, upload-time = "2026-10-16T16:01:45.899Z" },
|
{ url = "https://files.pythonhosted.org/packages/af/ed/bac8c15eb91baeaeb15a9061d7937ffd02ebe3384757addf0ca09660e592/hy_memory-2.0.3-py3-none-any.whl", hash = "sha256:763d6388ea83762e06c51aecd8e5d8e76211000f67355f65a760eb0a17ede4c5", size = 887157, upload-time = "2026-10-17T11:06:20.994Z" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1837,7 +1837,7 @@ requires-dist = [
|
|||||||
{ name = "fastapi", specifier = ">=0.141.1" },
|
{ name = "fastapi", specifier = ">=0.141.1" },
|
||||||
{ name = "filelock", specifier = ">=3.32.4" },
|
{ name = "filelock", specifier = ">=3.32.4" },
|
||||||
{ name = "httpx", specifier = ">=0.28.1" },
|
{ name = "httpx", specifier = ">=0.28.1" },
|
||||||
{ name = "hy-memory", specifier = "==2.0.2" },
|
{ name = "hy-memory", specifier = "==2.0.3" },
|
||||||
{ name = "keyring", specifier = ">=25.7.0" },
|
{ name = "keyring", specifier = ">=25.7.0" },
|
||||||
{ name = "numpy", specifier = "==2.5.2" },
|
{ name = "numpy", specifier = "==2.5.2" },
|
||||||
{ name = "onnxruntime", specifier = "==1.23.2" },
|
{ name = "onnxruntime", specifier = "==1.23.2" },
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ write. Retrieval results are checked against current Governance and access
|
|||||||
scope before being returned to the UI or an authorized host.
|
scope before being returned to the UI or an authorized host.
|
||||||
|
|
||||||
The currently pinned SDK is the public PyPI distribution
|
The currently pinned SDK is the public PyPI distribution
|
||||||
`hy-memory==2.0.2`. Runtime configuration and permission boundaries are
|
`hy-memory==2.0.3`. Runtime configuration and permission boundaries are
|
||||||
documented in [`../MEMORY.md`](../MEMORY.md).
|
documented in [`../MEMORY.md`](../MEMORY.md).
|
||||||
|
|
||||||
## Permission Boundaries
|
## Permission Boundaries
|
||||||
@@ -355,7 +355,7 @@ Support is declared per immutable GitHub Release manifest:
|
|||||||
- macOS arm64 and x64 App/Runtime artifacts must carry Developer ID signatures,
|
- macOS arm64 and x64 App/Runtime artifacts must carry Developer ID signatures,
|
||||||
notarization tickets, and native-platform acceptance receipts.
|
notarization tickets, and native-platform acceptance receipts.
|
||||||
- Windows is not supported.
|
- Windows is not supported.
|
||||||
- `hy-memory==2.0.2` is the public Python SDK dependency.
|
- `hy-memory==2.0.3` is the public Python SDK dependency.
|
||||||
|
|
||||||
See [`INSTALLATION.md`](INSTALLATION.md) for the release matrix. A source test,
|
See [`INSTALLATION.md`](INSTALLATION.md) for the release matrix. A source test,
|
||||||
fake hosting test, or cross-build does not substitute for a native-platform
|
fake hosting test, or cross-build does not substitute for a native-platform
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ MEMMY_LICENSE = (
|
|||||||
MEMMY_PROVENANCE = MEMMY_LICENSE.with_name("PROVENANCE.md")
|
MEMMY_PROVENANCE = MEMMY_LICENSE.with_name("PROVENANCE.md")
|
||||||
MEMMY_PIN = "25acd5f29fc7df73b943713abe61f1b2f9839887"
|
MEMMY_PIN = "25acd5f29fc7df73b943713abe61f1b2f9839887"
|
||||||
HY_MEMORY_NAME = "hy-memory"
|
HY_MEMORY_NAME = "hy-memory"
|
||||||
HY_MEMORY_VERSION = "2.0.2"
|
HY_MEMORY_VERSION = "2.0.3"
|
||||||
|
|
||||||
|
|
||||||
class SbomError(RuntimeError):
|
class SbomError(RuntimeError):
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ test("installation docs disclose publication and lifecycle boundaries", async ()
|
|||||||
"utf8",
|
"utf8",
|
||||||
);
|
);
|
||||||
|
|
||||||
assert.match(readme, /公共 Python SDK 为 `hy-memory==2\.0\.2`/);
|
assert.match(readme, /公共 Python SDK 为 `hy-memory==2\.0\.3`/);
|
||||||
assert.match(readme, /`v1\.0\.2` 的发行目标是 Linux x64\/arm64 Runtime/);
|
assert.match(readme, /`v1\.0\.2` 的发行目标是 Linux x64\/arm64 Runtime/);
|
||||||
assert.match(readme, /Linux 制品由 GitHub Actions/);
|
assert.match(readme, /Linux 制品由 GitHub Actions/);
|
||||||
assert.match(readme, /macOS.*Developer ID 签名、公证/s);
|
assert.match(readme, /macOS.*Developer ID 签名、公证/s);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ spec.loader.exec_module(module)
|
|||||||
|
|
||||||
|
|
||||||
def test_hy_memory_notice_comes_from_the_installed_dist_info(tmp_path: Path) -> None:
|
def test_hy_memory_notice_comes_from_the_installed_dist_info(tmp_path: Path) -> None:
|
||||||
dist_info = tmp_path / "hy_memory-2.0.2.dist-info"
|
dist_info = tmp_path / "hy_memory-2.0.3.dist-info"
|
||||||
licenses = dist_info / "licenses"
|
licenses = dist_info / "licenses"
|
||||||
licenses.mkdir(parents=True)
|
licenses.mkdir(parents=True)
|
||||||
(dist_info / "METADATA").write_text(
|
(dist_info / "METADATA").write_text(
|
||||||
@@ -21,7 +21,7 @@ def test_hy_memory_notice_comes_from_the_installed_dist_info(tmp_path: Path) ->
|
|||||||
(
|
(
|
||||||
"Metadata-Version: 2.4",
|
"Metadata-Version: 2.4",
|
||||||
"Name: hy-memory",
|
"Name: hy-memory",
|
||||||
"Version: 2.0.2",
|
"Version: 2.0.3",
|
||||||
"License-Expression: Apache-2.0",
|
"License-Expression: Apache-2.0",
|
||||||
"",
|
"",
|
||||||
)
|
)
|
||||||
@@ -38,7 +38,7 @@ def test_hy_memory_notice_comes_from_the_installed_dist_info(tmp_path: Path) ->
|
|||||||
notice = module.hy_memory_notice(dist_info)
|
notice = module.hy_memory_notice(dist_info)
|
||||||
|
|
||||||
assert notice["name"] == "hy-memory"
|
assert notice["name"] == "hy-memory"
|
||||||
assert notice["version"] == "2.0.2"
|
assert notice["version"] == "2.0.3"
|
||||||
assert notice["license"] == "Apache-2.0"
|
assert notice["license"] == "Apache-2.0"
|
||||||
assert notice["copyright"] == "Copyright (C) 2026 Tencent. All rights reserved."
|
assert notice["copyright"] == "Copyright (C) 2026 Tencent. All rights reserved."
|
||||||
assert "Licensed under the Apache License" in notice["text"]
|
assert "Licensed under the Apache License" in notice["text"]
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "hy-memory"
|
name = "hy-memory"
|
||||||
version = "2.0.2"
|
version = "2.0.3"
|
||||||
description = "HY Memory - Industrial-grade dual-system cognitive memory framework"
|
description = "HY Memory - Industrial-grade dual-system cognitive memory framework"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.9"
|
requires-python = ">=3.9"
|
||||||
|
|||||||
Reference in new issue
Block a user