Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

## Unreleased

- Development resumes as `7.0.1.dev0`. The signed `v7.0.0` tag and its
pinned single-file checksum remain the current stable release.

## 7.0.0 — 2026-07-18

The memory-platform release. Version 7 turns the audited single-file memory
Expand Down
12 changes: 6 additions & 6 deletions README.ar.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@
## الحالة المتحقق منها

<!-- mind:facts begin -->
- النسخة الحالية: `7.0.0`، وحالتها مستقرة.
- النسخة الحالية: `7.0.1.dev0`، وحالتها معاينة قبل الإصدار.
- الإصدار المستقر: `7.0.0`، وبصمة ملفه `ae2fc389b3b09c93cb432ab55b71063d98b400da6b18d6bc178322bc8f3fcf69`.
- الاختبارات المكتشفة آليا: **381**.
- التوزيع: **10** مجالات مصدرية تبني ملفا واحدا حتميا؛ بصمة الملف الحالي `ae2fc389b3b09c93cb432ab55b71063d98b400da6b18d6bc178322bc8f3fcf69`.
- الاختبارات المكتشفة آليا: **382**.
- التوزيع: **10** مجالات مصدرية تبني ملفا واحدا حتميا؛ بصمة الملف الحالي `182322c812686d5885423f90943a66898236ec04a1ed84ce5b52feb9a4364aee`.
- مصفوفة التكامل: **9** خلايا لأنظمة وإصدارات بايثون.
- سطر الأوامر: **30** أمرا؛ خادم البروتوكول: **17** أداة.
<!-- mind:facts end -->

النسخة `7.0.0` هي إصدار منصة الذاكرة المستقر. وتحتوي مزايا دورة الحياة
وخادم البروتوكول والذاكرة المصنفة والخصوصية والالتقاط التلقائي والمصدر
المعياري الموثقة أدناه.
النسخة `7.0.1.dev0` هي معاينة التطوير الحالية. أما الإصدار الجاهز للاستخدام
فهو `7.0.0`، ويحتوي مزايا دورة الحياة وخادم البروتوكول والذاكرة المصنفة
والخصوصية والالتقاط التلقائي والمصدر المعياري الموثقة أدناه.

<!-- mind:section install -->
## التثبيت
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,17 @@ builder reconstructs the single-file artifact byte-for-byte.
## Verified Status

<!-- mind:facts begin -->
- Development version: `7.0.0` (stable).
- Development version: `7.0.1.dev0` (preview).
- Stable release: `7.0.0`; pinned `mind.py` SHA-256 `ae2fc389b3b09c93cb432ab55b71063d98b400da6b18d6bc178322bc8f3fcf69`.
- Discovered tests: **381**.
- Distribution: **10** source-domain fragments build one deterministic file; current artifact SHA-256 `ae2fc389b3b09c93cb432ab55b71063d98b400da6b18d6bc178322bc8f3fcf69`.
- Discovered tests: **382**.
- Distribution: **10** source-domain fragments build one deterministic file; current artifact SHA-256 `182322c812686d5885423f90943a66898236ec04a1ed84ce5b52feb9a4364aee`.
- CI matrix: **9** operating-system/Python cells.
- Command line: **30** commands; protocol server: **17** tools.
<!-- mind:facts end -->

`7.0.0` is the stable memory-platform release. It contains the lifecycle,
protocol-server, typed-memory, privacy, automatic-capture, and modular-source
features documented below.
`7.0.1.dev0` is the current development preview. The production-ready release
is `7.0.0`, which contains the lifecycle, protocol-server, typed-memory,
privacy, automatic-capture, and modular-source features documented below.

<!-- mind:section install -->
## Install
Expand Down
6 changes: 3 additions & 3 deletions SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ consolidates them automatically. The default artifact is one standard-library
Python file.

<!-- mind:facts begin -->
- Development version: `7.0.0` (stable).
- Development version: `7.0.1.dev0` (preview).
- Stable release: `7.0.0`; pinned `mind.py` SHA-256 `ae2fc389b3b09c93cb432ab55b71063d98b400da6b18d6bc178322bc8f3fcf69`.
- Discovered tests: **381**.
- Distribution: **10** source-domain fragments build one deterministic file; current artifact SHA-256 `ae2fc389b3b09c93cb432ab55b71063d98b400da6b18d6bc178322bc8f3fcf69`.
- Discovered tests: **382**.
- Distribution: **10** source-domain fragments build one deterministic file; current artifact SHA-256 `182322c812686d5885423f90943a66898236ec04a1ed84ce5b52feb9a4364aee`.
- CI matrix: **9** operating-system/Python cells.
- Command line: **30** commands; protocol server: **17** tools.
<!-- mind:facts end -->
Expand Down
10 changes: 5 additions & 5 deletions docs/facts.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"artifact_bytes": 336396,
"artifact_bytes": 336401,
"artifact_lines": 7829,
"artifact_sha256": "ae2fc389b3b09c93cb432ab55b71063d98b400da6b18d6bc178322bc8f3fcf69",
"artifact_sha256": "182322c812686d5885423f90943a66898236ec04a1ed84ce5b52feb9a4364aee",
"capabilities": [
"atomic local graph storage",
"spreading-activation recall",
Expand Down Expand Up @@ -71,8 +71,8 @@
"unlink",
"why"
],
"development_status": "stable",
"development_version": "7.0.0",
"development_status": "preview",
"development_version": "7.0.1.dev0",
"environment_variables": [
"MIND_AUTO_DREAM",
"MIND_BY",
Expand Down Expand Up @@ -127,5 +127,5 @@
"3.12",
"3.14"
],
"test_count": 381
"test_count": 382
}
2 changes: 1 addition & 1 deletion docs/project.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"format": 1,
"development_status": "stable",
"development_status": "preview",
"stable_release": {
"version": "7.0.0",
"tag": "v7.0.0",
Expand Down
2 changes: 1 addition & 1 deletion mind.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
from collections import Counter, defaultdict, deque
from contextlib import contextmanager

__version__ = "7.0.0"
__version__ = "7.0.1.dev0"

# ────────────────────────────────────────────────────────────────
# Tunables (see docs/DESIGN.md for the reasoning behind each value)
Expand Down
2 changes: 1 addition & 1 deletion src/mind/00_prelude.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
from collections import Counter, defaultdict, deque
from contextlib import contextmanager

__version__ = "7.0.0"
__version__ = "7.0.1.dev0"

# ────────────────────────────────────────────────────────────────
# Tunables (see docs/DESIGN.md for the reasoning behind each value)
Expand Down
18 changes: 15 additions & 3 deletions tests/test_claims.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
"""Claims-as-code tests for generated docs and public evidence."""
import hashlib
import importlib.util
import json
import unittest
Expand All @@ -19,8 +18,7 @@ def test_generated_claims_are_current_and_valid(self):

def test_public_results_share_clean_artifact_provenance(self):
facts = CLAIMS.computed_facts()
expected_hash = hashlib.sha256(
(ROOT / "mind.py").read_bytes()).hexdigest()
expected_hash = CLAIMS.public_result_artifact_sha256(facts)

self.assertEqual(len(facts["public_results"]), 8)
for relative in facts["public_results"]:
Expand All @@ -32,6 +30,20 @@ def test_public_results_share_clean_artifact_provenance(self):
provenance["mind_sha256"], expected_hash, relative)
self.assertNotIn("--json-out", result.get("command", ""))

def test_preview_evidence_remains_bound_to_stable_release(self):
facts = {
"development_status": "preview",
"artifact_sha256": "development-bytes",
"stable_release": {"mind_sha256": "stable-bytes"},
}
self.assertEqual(
CLAIMS.public_result_artifact_sha256(facts), "stable-bytes")

facts["development_status"] = "stable"
self.assertEqual(
CLAIMS.public_result_artifact_sha256(facts),
"development-bytes")

def test_scoreboard_discloses_scope_and_links_every_report(self):
english = (ROOT / "README.md").read_text("utf-8")
arabic = (ROOT / "README.ar.md").read_text("utf-8")
Expand Down
10 changes: 9 additions & 1 deletion tools/claims.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,13 @@ def computed_facts():
return facts


def public_result_artifact_sha256(facts):
"""Bind release evidence to stable bytes while main is a preview."""
if facts["development_status"] == "preview":
return facts["stable_release"]["mind_sha256"]
return facts["artifact_sha256"]


def facts_block(facts, language):
stable = facts["stable_release"]
if language == "ar":
Expand Down Expand Up @@ -502,7 +509,8 @@ def validate_docs(facts):
if not re.fullmatch(
r"[0-9a-f]{40}", str(provenance.get("commit", ""))):
errors.append("invalid commit provenance in %s" % relative)
if provenance.get("mind_sha256") != facts["artifact_sha256"]:
if provenance.get("mind_sha256") != \
public_result_artifact_sha256(facts):
errors.append("artifact hash mismatch in %s" % relative)
if "--json-out" in str(data.get("command", "")):
errors.append("output path retained in command: %s" % relative)
Expand Down