Skip to content

Releases: MerakOsiris/memoryguard

MemoryGuard v0.7.12

Choose a tag to compare

@MerakOsiris MerakOsiris released this 12 Sep 09:21

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 reported passed: true,
    total: 200, and categories_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 check plus archive-content verification from commit 4a513a4434310c815cf3bb248321e5cacde52049.

MemoryGuard v0.7.11

Choose a tag to compare

@MerakOsiris MerakOsiris released this 04 Sep 10:33

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

Choose a tag to compare

@MerakOsiris MerakOsiris released this 04 Sep 09:11

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/memoryguard as 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

Choose a tag to compare

@MerakOsiris MerakOsiris released this 04 Sep 08:16

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-name marker in the source README, and public contribution/security
    guidance. The official MCP Registry lists the released local stdio server as
    active/latest under io.github.irisxc4/memoryguard.

Recorded publication evidence

Evidence and demo boundary

Run the benchmark only against an authorized local workspace:

python scripts/benchmark_usage_telemetry.py --workspace . --window-days 7 --sync

Use 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 doctor

After 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.

Historical release notes: v0.7.8, v0.7.7.

MemoryGuard v0.7.8

Choose a tag to compare

@MerakOsiris MerakOsiris released this 29 Aug 08:15

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 doctor

After 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

Choose a tag to compare

@MerakOsiris MerakOsiris released this 28 Aug 04:11

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 current sys.executable for 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 doctor

After 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

Choose a tag to compare

@MerakOsiris MerakOsiris released this 28 Aug 03:18

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 Stop capability, 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 doctor

After 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

Choose a tag to compare

@MerakOsiris MerakOsiris released this 27 Aug 03:40

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_total and
    total report the queue size, while actionable_total reports 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 doctor

MemoryGuard v0.7.4

Choose a tag to compare

@MerakOsiris MerakOsiris released this 26 Aug 20:15

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_audit and get_audit return 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/absent is 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_outbox projection 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/447 passed;
  • related focused governance, runtime, GUI, migration, and provider suites
    passed;
  • git diff --check passed.

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 doctor

For 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

Choose a tag to compare

@MerakOsiris MerakOsiris released this 22 Aug 09:17

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.