Releases: MerakOsiris/memoryguard
Release list
MemoryGuard v0.7.12
MemoryGuard v0.7.12
MCP discovery and registered capabilities
New MCP clients receive a compact default discovery surface of 11 day-to-day
tools through tools/list. The surface includes capability discovery and the
governed invocation broker. memoryguard_capabilities exposes paginated
metadata for registered MCP operations and reviewed headless GUI operations,
with JSON Schema returned only when include_schema=true is requested for a
selected page. Existing advanced MCP names remain callable by exact name for
installed-client compatibility; they are not added to the default discovery
surface.
memoryguard_invoke routes a discovered MCP or reviewed headless GUI operation
through its existing checks. Mutating targets still require confirmed=true
and a non-empty idempotency_key; the broker forwards those proofs to the
target's permission, scope, and readiness gates. The MCP name remains
io.github.irisxc4/memoryguard.
Bounded read responses
Successful replayable reads are compacted and measured against a 24,000-byte
UTF-8 limit for the complete MCP envelope, including all content blocks and
existing structuredContent. Responses within the limit keep their existing
shape. An eligible oversized read returns a compact receipt with an opaque
response_ref and required identifiers rather than silently truncating its
body. Reads that do not meet replay conditions or exceed the in-memory snapshot
limit return a bounded delivery.status="unavailable" receipt with
action="narrow_query".
The broker-only memoryguard_response_read operation is registered through the
capability catalog and is invoked through memoryguard_invoke; it is not an
additional default tools/list tool. Pages are UTF-8 JSON fragments with a
next_offset. The page limit is 4–4096 bytes, with a 3000-byte default, and an
offset must begin at a UTF-8 character boundary. For one JSON text payload,
fields accepts top-level business field names or object-only JSON Pointers,
such as /data/memory_id. Multi-content and non-JSON results reject field
selection and remain available only as whole-envelope pages.
Private references live only in the MCP process for at most five minutes. The
store keeps at most 16 snapshots, each at most 512,000 bytes. A private
reference is bound to the exact trusted session, principal, scope, and active
binding revision. Every page reruns the original read under current
authorization and compares its digest. Denied, changed, revoked, or expired
references return stable refusal codes; old cached content never bypasses the
current read. Public capability metadata keeps its existing offset pagination.
Writes and memoryguard_context_bootstrap keep their complete receipt and
mandatory-rule contracts and cannot request response pagination. A page read
therefore never reruns a mutation.
Cache-aware local telemetry
Provider-reported cached_input_tokens and cache_write_input_tokens are
stored and aggregated separately as measured_cached_input and
measured_cache_write_input. Cache coverage is reported independently as
complete, partial, or unavailable. A provider-reported zero remains zero;
missing provider data remains unknown (None/unavailable). Deterministic
MemoryGuard conversion units continue to be labeled estimates, and this
release makes no claim of a measured token-reduction rate.
Validation boundary
- Official implementation-tip CI passed all four jobs: Ubuntu full pytest and
acceptance on Python 3.10 and 3.12, plus Windows runtime lease acceptance on
Python 3.10 and 3.12. - Local targeted validation recorded 85 passed for runtime lease, knowledge
library, and knowledge acceptance checks. Rule-merge acceptance reported
ACCEPTED/passed: true; lifecycle acceptance reportedpassed: true,
total: 200, andcategories_passed: true, with empty production defects
and errors. - Final publication gates passed: main CI run 34684624860, Repo Hygiene run 34684624766, and the 0.7.12 wheel/sdist both passed
twine checkplus archive-content verification from commit4a513a4434310c815cf3bb248321e5cacde52049.
MemoryGuard v0.7.11
MemoryGuard v0.7.11
Documentation and discovery consistency
This public documentation and discovery consistency release removes
release-state wording that can become stale after publication. README and
registry guidance now point to live GitHub Releases, PyPI, and official MCP
Registry records for current package and server status.
The runtime behavior summarized in public documentation originates in v0.7.9.
This release changes no runtime behavior.
Verification boundary
Published artifact status is verified from the release workflow, PyPI package
page, and official MCP Registry entry. Third-party directory acceptance and
Glama quality scoring remain separate, external processes.
MemoryGuard v0.7.10
MemoryGuard v0.7.10
Status: published documentation and discovery-metadata consistency release
v0.7.10 changed no runtime behavior. It aligned source metadata with the
completed v0.7.9 public release and made discovery status clear:
- v0.7.9 is published on GitHub and PyPI.
- The official MCP Registry lists
io.github.irisxc4/memoryguardas the active
latest local stdio server. - The desktop console has seven governance pages plus one independent Token
usage-and-savings entry.
v0.7.10 was published through GitHub OIDC to PyPI and the official MCP
Registry. It does not claim a Glama score, Smithery listing, or other
third-party acceptance; those claims require their own verified evidence.
Historical published release: v0.7.9.
MemoryGuard v0.7.9
MemoryGuard v0.7.9
Released: 2026-09-04
v0.7.9 is a focused governance, telemetry, and public-distribution release
after v0.7.8. It keeps the local-first, evidence-first, fail-closed boundaries.
GitHub Release, GitHub CI, PyPI, and official MCP Registry publication all
succeeded. This note does not claim a Glama score or any other third-party
directory acceptance.
Included
- Canonical rule, habit, and memory reconciliation keeps one maintained
definition per related concept while preserving source links, evidence,
graph branches, supersede history, conflict decisions, and reversible
settlement receipts. - Governance surfaces use readable verified Agent/provider identities, shared
group context, safe family-aware icons, actionable risk/conflict states, and
explicit stale-conflict closure. Technical identifiers remain available in
details for audit. - Local token telemetry has a documented benchmark path for seven- and
thirty-day windows. Provider-reported totals, input/output-derived totals,
deterministic MemoryGuard estimates, coverage, and unsupported hosts remain
separate. Missing local samples are reported as unavailable, never zero. - The repository includes MCP Registry metadata in
server.json, the PyPI
mcp-namemarker in the source README, and public contribution/security
guidance. The official MCP Registry lists the released local stdio server as
active/latest underio.github.irisxc4/memoryguard.
Recorded publication evidence
- GitHub Release v0.7.9
points to the released source revision. - Release CI,
PyPI publish,
and MCP Registry publish
completed successfully. agent-memguard0.7.9 on PyPI
contains themcp-name: io.github.irisxc4/memoryguardmarker.
Evidence and demo boundary
Run the benchmark only against an authorized local workspace:
python scripts/benchmark_usage_telemetry.py --workspace . --window-days 7 --syncUse docs/benchmarks/README.md for measurement
semantics and docs/benchmarks/demo-script.md
for a sanitized recording. The repository's synthetic graph artwork is not a
live product capture; do not describe a placeholder asset as a telemetry or
benchmark result.
Upgrade
python -m pip install --upgrade agent-memguard
memoryguard --version
memoryguard doctorAfter upgrading a Codex installation, repair the provider binding and restart
the Codex host so the MCP server and lifecycle Hooks load the aligned runtime.
Validation boundary
The release workflow recorded final wheel/sdist checks, CI, PyPI visibility,
and official MCP Registry publication. Third-party directory ingestion remains
separate and must not be inferred from these results.
MemoryGuard v0.7.8
MemoryGuard v0.7.8
Release target: 2026-08-29
v0.7.8 consolidates the governance and observability work prepared after
v0.7.7. It keeps the local-first, evidence-first, fail-closed boundaries and
does not claim CI or PyPI success before the release workflow reports it.
Included
- Canonical reads and writes converge related rules, habits, and memories while
retaining source links, evidence contributions, graph branches, supersede
history, conflict decisions, and reversible settlement receipts. Mandatory
context has an independent character/token budget; count warnings do not
silently truncate storage or injection. - Agent discovery and governance use verified, stable program identities and
readable labels. Shared-group scope, automatic decisions, risk explanations,
stale-conflict closure, and safe family-aware icons are available through the
seven-page GUI information architecture. Technical IDs remain available in
details for audit without being the primary user-facing label. - Optional usage telemetry records local MCP conversion events and host-reported
token measurements in.memoryguard/usage_telemetry.sqlite. The Token page
supports seven- and thirty-day windows and shows the measurement basis. The
savings ratio is an estimate from deterministic MemoryGuard units, not a
provider billing result. Current host token measurements cover Codex and Grok;
Claude, Cursor, and Trae are explicitly reported as unsupported. - Codex lifecycle reclamation is gated by verified terminal/deleted thread
evidence and does not treat an ordinary turn boundary as conversation close.
Installed provider repair aligns MCP and lifecycle Hooks to the current
interpreter while preserving Agent/shared-group identity and conservative
fail-closed repair behavior.
Privacy boundary
Telemetry is local-only. It does not upload data and does not store conversation
bodies, account names, raw source paths, or instance identifiers. Remote model or
embedding operations remain explicit opt-in behavior described in the README.
Upgrade
python -m pip install --upgrade agent-memguard
memoryguard --version
memoryguard doctorAfter upgrading a Codex installation, repair the provider binding and restart
the Codex host so the MCP server and lifecycle Hooks load the aligned runtime.
Validation boundary
This document does not assert CI, wheel, or PyPI publication success. Those
results must be recorded from the release workflow and package checks after the
source and documentation gates complete.
MemoryGuard v0.7.7
MemoryGuard v0.7.7
Release target: 2026-08-28
v0.7.7 is a focused provider-repair and runtime-alignment hotfix. It keeps
the existing fail-closed boundaries and binding identity while repairing the
normal-shell and installed-runtime paths that were still blocked by missing
native context or an inherited stale snapshot.
Included
- A bare
memoryguard provider repair ...command can obtain an in-process
trusted repair capability when the canonical control home is verified and
exactly one active binding is available. Missing or ambiguous context stays
fail-closed. This does not widen any other CLI mutation path. - Non-editable wheel repairs ignore an inherited old runtime snapshot and use
the currentsys.executablefor both the Codex MCP entry and all seven
lifecycle Hooks. Editable and local-source installs continue to use their
content-keyed immutable snapshots. - Repair preserves the existing Agent identity and shared-group binding.
Scope boundary
This document describes the 0.7.7 source changes. CI validation and external
publication are handled by the release workflow and are not asserted here.
Upgrade
python -m pip install --upgrade agent-memguard
memoryguard --version
memoryguard doctorAfter upgrading a Codex installation, repair the provider binding and restart
the Codex host so the MCP server and lifecycle Hooks load the aligned runtime.
MemoryGuard v0.7.6
MemoryGuard v0.7.6
Released: 2026-08-28
v0.7.6 is a focused Codex Hook/MCP runtime reliability release. It keeps the
existing governance and lifecycle policy while making runtime selection,
concurrent state updates, and bootstrap failure state explicit and consistent.
Included
- Codex lifecycle Hooks and the MCP server use the same content-keyed,
immutable runtime snapshot. Installation no longer leaves MCP on one Python
interpreter while lifecycle Hooks resolve another through PATH. - Hook session-state read/modify/write operations use short, re-entrant
cross-process lock windows. A full Hook execution does not hold the state
lock, so concurrent tools and sub-agent dispatch can proceed independently. - Bootstrap success writes a stable context hash and clears prior errors;
bootstrap failures clear stale success state and record the applicable error. - Ordinary
Stopcapability, signature, dispatch, and runtime failures remain
fail-open. A native response that explicitly reports mandatory-budget
overflow is retained for the next tool call, which then fails closed. - The built-in Grok profile is discoverable from its installed user surface.
Verified provider, CLI, and MCP metadata receive a stable program identity;
generic or opaque values remain unresolved rather than being guessed. - The governance GUI follows the reference seven-page shell with persistent
navigation, a central workspace, a context rail, readable Agent summaries,
and family-aware icon fallbacks. Opaque technical IDs are kept in collapsed
details instead of being the primary label.
Validation boundary
This release metadata records the Hook/MCP runtime fixes and their focused
regressions. Full-suite validation and external publication are performed by
the release workflow after the source changes are accepted.
Upgrade
python -m pip install --upgrade agent-memguard
memoryguard --version
memoryguard doctorAfter upgrading a Codex installation, repair the provider binding and restart
the Codex host so the MCP server and lifecycle Hooks both load the new snapshot.
MemoryGuard v0.7.5
MemoryGuard v0.7.5
Released: 2026-08-27
v0.7.5 is a focused correctness release for reviewing governed memory
conflicts. It improves the read and display contract without changing the
underlying conflict-resolution policy.
Included
- Conflict groups return self-contained member snapshots from V2 atom and
tombstone history. Each snapshot is bounded and redacted before crossing the
GUI boundary; missing history remains explicit instead of being replaced by
an invented record. - Known conflict reason codes render as readable Chinese explanations, with a
bounded diagnostic reason retained for troubleshooting. - Only live, selectable members can be chosen as keepers. Deleted,
superseded, rejected, quarantined, shadowed, missing, or otherwise invalid
candidates are disabled, and resolution fails closed unless at least two live
members remain. - Historical conflict groups remain visible for audit.
history_totaland
totalreport the queue size, whileactionable_totalreports groups that
can still be resolved; the governance overview uses the actionable metric.
Validation boundary
This release preparation is limited to version, README, changelog, and release
metadata checks. It does not claim a full test-suite run, package publication,
or external release action.
Upgrade
python -m pip install --upgrade agent-memguard
memoryguard --version
memoryguard doctorMemoryGuard v0.7.4
MemoryGuard v0.7.4
Released: 2026-08-27
v0.7.4 consolidates the governance and runtime fixes prepared after the
v0.7.3 shared-history release.
Included
- Canonical reconciliation merges related rules, habits, and memories into a
single evolving record instead of leaving equivalent updates scattered.
Neural-graph branches may still derive automatically, while provenance,
scope, evidence, and reversible supersede history remain intact. - Mandatory-rule counts above 20 are a health warning, not a storage or
injection cap. Character/token aggregate limits, per-item limits, sensitive
content, and corrupt governance state remain fail-closed. - Agent, automatic-decision, GUI, and risk-signal surfaces expose readable
labels and explanations. Governance groups default to collapsed, and
conflict/risk summaries open their details; risk entries show reason, impact,
and action; CodeGraph/GUI operations use the governed identity and scope
contracts. run_auditandget_auditreturn explicit completion state and timezone-aware
timestamps. The GUI uses this evidence consistently, so completed scans do
not remain待扫描; missing numeric health evidence stays unknown rather
than being fabricated. The reader popover stays above navigation, and
governance phases display readable completed/current/pending/undetermined
states.- Codex Hook/bootstrap diagnostics distinguish mandatory-budget overflow from
generic context-build errors.NO_SOURCE/absentis treated as a neutral
canonical fallback, not as a mandatory-rule failure. - Provider MCP installation detects editable/local-source origins and uses a
content-keyed, non-editable snapshot. Snapshot creation is atomic, package
static assets participate in refresh, failed builds preserve the last valid
runtime/configuration, and PEP 610 copied-install origin diagnostics are
available without mutating state during inspection. - GUI partial mutation and evidence publication conflict paths preserve the
prior valid state. Migration replay tests cover idempotent retries,
read-only failure evidence, and safe recovery. - System
group_outboxprojection advances the projected event and checkpoint
in one transaction. A lagging checkpoint can be repaired safely; pending or
failed events remain fail-closed and cannot be projected as successful.
Validation evidence
This release preparation relies on existing evidence rather than a duplicate
full-suite run:
- incremental CI tail:
447/447passed; - related focused governance, runtime, GUI, migration, and provider suites
passed; git diff --checkpassed.
The complete test suite was not rerun during release preparation. Package
artifacts must still pass twine check and the staged-content exclusion audit
before publication.
Upgrade
python -m pip install --upgrade agent-memguard
memoryguard --version
memoryguard doctorFor Codex, use the provider installation path so the MCP process is pointed at
an immutable snapshot rather than an editable checkout. Restart the MCP
process after installation so its imported code matches the selected snapshot.
MemoryGuard v0.7.3
MemoryGuard v0.7.3
Date: 2026-08-22
Status: targeted shared-history visibility release
Fixed
- Shared-group history list/search/read/timeline/export no longer apply the caller host provider filter. Active group members can recall each other sessions. Rows stay grouped by owner Agent.
- Delete remains owner-only. Personal (non-shared) scopes still isolate by provider and project.
Verification evidence
- Targeted verification: python -m pytest tests/test_conversation_history.py tests/test_v2_public_upgrade.py -q
- Live Content V2 store check: a Cursor provider=cursor shared-group scope listed 136 member sessions owned by Codex.
- Repository whitespace verification: git diff --check.
This note records only the focused shared-history correction; it does not claim a full-suite result.