- Fixed a project identity edge case where generated
codex-agent-memcontext insideAGENTS.mdcould be mistaken for the active project scope by MCP hosts or agent clients. - Preserved existing project
root_pathmetadata when a later conflicting project update is observed, preventing accidental project-root drift. - Allowed
mem_note_createto initialize a missing local project record before storing the first manual note, while keeping--read-onlyprotections unchanged. - Added synthetic regression coverage for generated-context scope stripping, first-note project initialization, and conflicting project-root updates without publishing private workspace identifiers.
- Stabilized the public local-first MCP runtime for multi-client use while keeping the core package local, auditable, and SQLite-backed.
- Normalized MCP
structuredContentso list-returning tools expose object roots as{items, count}instead of root arrays. This is a wire-format compatibility fix for stricter MCP clients, not a data migration. - Added session-aware retrieval for persisted memory: agents can list recent sessions with
mem_session_listand pass optionalsession_idto retrieval tools to avoid cross-session context bleed in broad project scopes. This is retrieval over stored local memory, not live current-turn awareness. - Added defensive startup scope resolution for broad workspaces:
mem_scope_resolveexposes candidate lanes from explicit hints, andmem_bootstrap_contextreturns a session-scoped pack only whensession_idis explicit; otherwise it returns narrowing guidance instead of silently loading a project-wide pack or auto-selecting a session. - Added
mem_note_createas the explicit writable path for manual operational memory. Notes are persisted as indexed observations, can be scoped to a validatedsession_id, are blocked by--read-only, appear inmem_search, and are eligible formem_context_pack; snapshots remain versioned state captures, not the manual note mechanism. - Hardened
mem_snapshot_create/mem_snapshot_listprovenance for broad project scopes: snapshots can be tied to an explicit internalsession_id, invalid cross-project session IDs are rejected, and unscoped snapshots are no longer silently associated with the latest project turn. - Recalibrated public quickstart, Codex config examples, runtime guidance, and the MCP contract smoke so normal continuity installations are writable by default;
--read-onlyremains an explicit retrieval-only audit/debug mode. - Aligned Codex bootstrap tool approvals with the MCP profile definitions and added anti-drift coverage so
minimal,standard, andfullapproval surfaces stay matched totools/list. - Split public validation claims into retrieval-only and writable-continuity evidence so read-only client smokes are no longer presented as full continuity validation.
- Extended the MCP contract smoke to verify later-process continuity: a manual note written through one writable MCP subprocess must be found by
mem_search, included inmem_context_pack, and returnnot_modified=truefrom a later subprocess over the same temporary SQLite database. - Documented that
mem_note_createrequires an existingproject_key, and that thefullCodex example approves writable note, snapshot, governance, repair, and restore tools. - Hardened Codex notify/API project identity resolution so broad workspace roots and technical working directories are not persisted as accidental project keys when the captured turn identifies a narrower repository, AGENTS scope, or project-state canonical name.
- Hardened broad project-scope retrieval with visible multi-session scope warnings, project-wide candidate objective labeling, retrieval dedupe, per-session dominance caps, clearer session labels, search provenance, and persisted-memory freshness cues.
- Kept the hardening conservative by excluding volatile age from stable pack hashes, deduping by type/status/text so operational states remain distinct, overfetching before search dedupe, preserving protected operational items under dominance caps, and reporting session-level version metadata without claiming per-observation capture certainty.
- Added response-diet no-regression coverage for post-hardening retrieval: compact text keeps only scope breadcrumbs, unchanged packs still return
not_modified=true, and public token-savings claims remain tied to reproducible fixtures rather than universal guarantees. - Kept compact
content.textas the default response diet for clients that consumestructuredContent, and documented when Google Gemini CLI / Google Antigravity should useresponse_mode=verboseto expose useful payload text to the model. - Changed the stdio bridge default so
codex-agent-mem-mcp --daemon-url ...no longer exits after the defensive 300 second idle timeout unless--idle-timeout-secondsis explicitly provided. - Kept direct stdio behavior unchanged: direct
codex-agent-mem-mcpstill defaults to a 300 second defensive idle shutdown, and--idle-timeout-seconds 0still disables it. - Serialized MCP request handling inside the optional threaded local daemon so one shared SQLite-backed server instance is not driven concurrently.
- Hardened the optional local daemon for the public local-first line: loopback-only bind validation, optional bearer token auth for
/mcp, sanitized public/health, and bearer-token forwarding from the stdio bridge. - Added a generated-context guardrail that marks retrieved memory as advisory project context rather than higher-priority instruction, plus public documentation that
1.0.xlocal SQLite storage is plaintext by default and must not be used as a secrets vault. - Added release validation coverage for bridge idle-timeout resolution, local daemon request handling,
known_pack_hash/not_modified, and object-root list payloads. - This release keeps hosted/web/OAuth bridge work outside the public core and keeps token-savings claims tied to reproducible methodology rather than universal guarantees.
- Added low-impact MCP runtime modes with
--profile minimal|standard|full,--read-only, and enrichedmem_health_runtimefields for profile, mutability, cache, lazy initialization, and spawn-storm diagnostics. - Added response diet support: compact
content.textby default, full data retained instructuredContent, and--response-mode compact|balanced|verbosefor debugging or compatibility needs. - Added lazy store initialization so
initialize,tools/list, andmem_health_runtimecan run without opening SQLite. - Added short in-process caching for expensive read tools using project revision fingerprints instead of SQLite file mtimes.
- Added stable
pack_hashsupport formem_context_pack, plusknown_pack_hash/not_modifiedresponses to avoid resending unchanged continuity packs. - Added local heartbeat-based runtime diagnostics,
same_db_process_count, andspawn_storm_warningwithout adding a process-inspection dependency. - Added optional local runtime telemetry with bounded
events.jsonloutput andoff|summary|debugmodes. - Added an optional local MCP daemon and stdio bridge through
codex-agent-mem-daemonandcodex-agent-mem-mcp --daemon-url ...; stdio remains the default. - Added reproducible public verification evidence under
docs/verification/, including token-savings metrics, lazy-init checks, read-only safety, response diet, telemetry smoke, and a sub-agent handoff scenario.
- Added governed memory policies for inclusion and exclusion control through
mem_policy_validate,mem_policy_add,mem_policy_list, andmem_policy_remove. - Added selective inheritance links so one project can carry forward approved continuity from another project without blindly importing everything.
- Added governed repair proposals and derived repair events through
mem_repair_proposeandmem_repair_apply. - Extended the context-pack builder so target policies also apply to inherited memory, preventing excluded items from leaking into generated packs.
- Added a local policy CLI and inspector/UI support for governance state, including policies, inheritance links, repairs, and their compact summaries.
- Hardened the MCP stdio runtime with configurable idle shutdown, signal-aware cleanup, explicit SQLite close, and lifecycle logging for process diagnostics.
- Added
mem_health_runtime, plus SQLiteWAL/busy_timeoutdefaults better suited to multiple MCP and notify processes touching the same local database. - Switched bootstrap examples so
--sync-project-docis opt-in instead of on by default, while keeping automatic reinjection available when explicitly enabled.
- Added auditable memory provenance persisted per observation and exposed through
mem_provenance. - Added diagnostic health reporting through
mem_health, plus persisted health reports per project. - Added snapshot creation, listing, and restore flows through
mem_snapshot_create,mem_snapshot_list,mem_snapshot_restore, and a local snapshot CLI. - Added provenance, health, and snapshot visibility to the FastAPI inspector and local UI.
- Hardened diagnostic-turn filtering so
mem_*verification runs do not pollute derived operational state orAGENTS.md. - Persisted richer context-sync observability, including budget reasons and sync build timing.
- Added
mem_recent_changesto expose open-work deltas since the last meaningful sync baseline. - Added
mem_scope_guardto surface must-not-drop continuity, active constraints, and closure conflicts. - Added
budget=autofor context packs, selecting the smallest fitting reinjection profile frommicro,normal, andfull. - Persisted context-sync metrics by budget, including event counts and average compression ratio per budget.
- Filtered diagnostic MCP and no-tools verification turns out of derived operational state so inspection runs do not pollute continuity.
- Expanded the local inspection UI to surface recent changes and scope guard state alongside closure and sync metrics.
- Added hierarchical Definition of Done tracking across project, mission, and session scopes.
- Added deterministic closure control with
mem_open_workandmem_completion_check. - Added
closure_mismatchmetrics and persisted closure-check event summaries per project. - Added budgeted context packs (
micro,normal,full) with compact reinjection stats. - Hardened inline extraction and semantic deduplication so DoD labels and near-duplicate blockers are classified correctly.
- Added derived operational state for objective, constraints, pending work, completed work, blockers, and completion claims.
- Added scope guard rules to the generated continuity block so Codex carries forward open work and avoids false completion.
- Added context sync metrics and persistence for generated pack events.
- Expanded the inspector and API to surface operational state and context sync metrics.
- Hardened heuristic extraction so semicolon-separated operational clauses are split instead of contaminating one field with another.
- Fixed the Windows MCP stdio transport by emitting ASCII-safe JSON on the wire and reconfiguring stdio to UTF-8.
- Stabilized
mem_context_packand the other MCP retrieval tools when called from Codex CLI on Windows.
- Added generated working-memory context packs built from durable decisions and recent session summaries.
- Added automatic AGENTS.md synchronization after Codex notify ingest so future sessions start with compressed continuity context.
- Added
mem_context_packto the MCP surface andcodex-agent-mem-refresh-contextfor manual context regeneration. - Added project UI support to inspect the generated working-memory pack and its approximate token budget.
- Added a local inspection UI served by FastAPI for projects, sessions, turns, observations, and decisions.
- Added packaged HTML templates and CSS so the inspector works from installed wheels, not just from source checkouts.
- Expanded the store and tests to cover inspector views and turn-level browsing.
- Updated the generated Codex config snippet to auto-approve the read-only MCP retrieval tools.
- Updated the Codex config example and integration docs to match the real non-interactive Codex behavior.
- Restructured the project into a GitHub-ready repository root.
- Added release-oriented packaging metadata, CI, and repository hygiene files.
- Added
codex-agent-mem-bootstrap-codexto generate ready-to-paste Codex config snippets. - Added
codex-agent-mem-smoketo verify install, ingest, persistence, and retrieval quickly. - Fixed the optional HTTP notify wrapper to post the correct payload shape.
- Aligned
--api-baseingestion with the same/ingest/codex-notifycontract used by direct Codex notify capture. - Hardened search with fallback behavior when FTS queries are malformed.
- Expanded test coverage beyond the original v0.1 slice.
- Added agent-facing and public-facing repository docs:
AGENTS.md,CONTRIBUTING.md,SECURITY.md, quickstart, integration, support matrix, design decisions, and discoverability metadata. - Updated package metadata to reflect Apache 2.0 licensing and stronger public discoverability keywords.
- First executable slice: notify ingestion, SQLite persistence, FastAPI inspection API, and MCP retrieval.