You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Background auto-indexing (F4) — auto_index.background (default false). When set true, Stage 4 INDEX runs via asyncio.create_task off the request path; the agent receives a [Indexing…] · scheduled placeholder footer immediately while indexing proceeds in the background. Trade-off: read-your-own-writes consistency is no longer guaranteed until the task completes — opt in only if agents tolerate the gap. Metrics row records index_ok IS NULL / index_error IS NULL / chunks_indexed = 0 (tri-state matching background extraction); dashboards filter background rows with WHERE index_ok IS NULL. Default false preserves the synchronous contract for every existing deployment.
PROGRESSIVE_FOOTER_TOKEN — canonical split token for progressive chunks (issue #160). Exported from memtomem_stm.proxy.progressive as the exact prefix ("\n---\n[progressive: chars=") that agents stitching sequential stm_proxy_read_more responses should split on, instead of the weaker "\n---\n". The [progressive: chars= suffix is a sentinel that does not appear in natural prose; splitting on the three-char delimiter alone silently drops bytes when content contains markdown horizontal rules, YAML frontmatter fences, or other --- sequences. Non-breaking: the footer wire format is unchanged. Regression tests cover markdown HR, YAML frontmatter, \n---\n[ lookalike brackets, and content that ends in \n---\n immediately before the footer; an additional test pins the exact legacy failure mode so a future refactor cannot silently regress to split("\n---\n")[0]. Agent-side contract documented in docs/pipeline.md § Stage 3.
CLI: mms version + mms status --json (#152) — dedicated version subcommand and scriptable JSON status output for tooling / CI.
CLI: mms health (#155) — per-upstream MCP connectivity checks with actionable diagnostics.
Optional deterministic trace_id on call_tool (#173) — opt-in kwarg for reproducible traces (bench harnesses, golden tests).
Parent LTM hints forwarded to operator observability (#191) — upstream hint payload exposed on surfacing spans for diagnostics (operator-only; downstream prepend text unchanged).
Changed
Progressive delivery surfaces memories for users who opt in via injection_mode (F6). The default injection_mode stays prepend, which continues to bypass surfacing on progressive (upgrading is a no-op for default deployments). Operators who set injection_mode to append or section now get Stage 3 (SURFACE) on progressive responses; prepend would shift stm_proxy_read_more offsets and stays skipped with a one-time WARNING. See docs/pipeline.md § Stage 3 and tests/test_progressive.py::TestProgressiveContentIntegrity::test_concat_invariant_under_surfacing for the empirical safety proof.
CallMetrics.surfacing_on_progressive_ok / surface_error (schema-provisioned by v0.1.8) now populate on the progressive path: True/False when surfacing ran, None when skipped (non-progressive call, no engine, or prepend mode).
Fixed
metrics_store read-path defensive lock (#166) — three read methods wrap the write-path lock so a future move to run_in_executor cannot silently introduce torn reads.
CLI: reject non-dict JSON configs with a clean error (#156); duplicate prefix warning now clearly states the operation proceeds (#154).
Notebook 05 — correct mms add invocation (#184), echo fixture refs, notebook 00 count (#181); notebook builder reconciled with post-commit direct edits from #150 (#182).
README CI pytest filter aligned with workflow (#185); pipeline / custom-integration line references refreshed (#179); bench trace prefix link in operations.md (#183).