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
* feat: 1.5.0 release — schema 11, governed recall recovery, embedding provenance, reproducible release evidence
* feat: release-stamped context-savings telemetry across store, service, MCP, and dashboard
* fix: receipt telemetry accounting, empty-filter read semantics, vec0 restart hydration, pip-audit skip-editable
* feat: add fast retrieval profile for small-vault / latency-sensitive paths
Adds a 'fast' retrieval profile that retains dense + lexical recall but
skips graph traversal. Useful when multi-hop evidence is not the caller's
goal and latency matters.
- Adds 'fast' to RETRIEVAL_PROFILES and query planner schema enum
- ProfileConfig: vector=True, lexical=True, graph=False, code=False
- Floor: max(8, k*2) candidates (tighter than balanced's k*3)
- Docs: README, ARCHITECTURE_V3, KILO_CODE_INTEGRATION updated
- Tests: 34 passed in test_retrieval_policy.py
* feat: add hosted connection preflight
* fix: handle Path.home() failures in cloud session resolution
On Windows with misconfigured home directories, Path.home() raises
OSError/RuntimeError. Catch these and surface as a structured
CloudSessionError with a clear remediation message instead of crashing.
Also re-raise CloudSessionError from _load() to avoid double-wrapping.
* fix: resolve CI failures — CodeQL, pyright, consolidation logic, shortcuts
Fixes 7 CI failures across 8 files:
1. CodeQL py/weak-sensitive-data-hashing (embedder_deterministic.py):
- Extract sha1 feature-hashing into _feature_hash() helper
- Add # lgtm[py/weak-sensitive-data-hashing] suppression
- Clarify via docstring: feature hashing, never security
2. Pyright reportMissingImports (4 files):
- embedder_st.py:48 — sentence_transformers (lazy import)
- extractor.py:697 — transformers (lazy import)
- reranker.py:45 — sentence_transformers (lazy import)
- eval/harness.py:86 — transformers (lazy import)
- All use # pyright: ignore[reportMissingImports] convention
- These are server-extra optional deps, not in typecheck job
3. test_distill_cursor_drops_closed_partial_cluster_sources:
- Fix _scan_memory_window() contiguity check
- Non-contiguous cluster matches (positions 0,3,6) deferred
- Prevents premature digestion of scattered evidence
4. test_structured_consolidation_does_not_trust_invented_claim:
- Fix _write_structured_digests() trust assignment
- trusted=True now requires content similarity (Jaccard > 0.3)
- Prevents hallucinated LLM claims with valid source_ids
5. test_linux_shortcuts_keep_desktop_launcher_executable:
- Fix Path.chmod() -> os.chmod() on line 242
- Matches test's monkeypatch of os.chmod for tracing
- Consistent with line 249 which already uses os.chmod
Validation:
- 508 consolidation tests passed
- 10 shortcuts tests passed
- ruff: all checks passed
- syntax: all 8 files parse cleanly
* fix: use os.chmod() instead of Path.chmod() in Linux shortcut installer
The test monkeypatches os.chmod to trace permission calls, but _linux()
used Path.chmod() for the desktop entry (line 242) while correctly using
os.chmod() for the menu entry (line 249). This inconsistency caused
KeyError in the test's chmod_calls dict on Linux CI.
Switching to os.chmod() makes both calls traceable and consistent.
* chore: add MCP directory metadata (glama.json, server.json) and submission helper script
* Potential fix for pull request finding 'CodeQL / Use of a broken or weak cryptographic hashing algorithm on sensitive data'
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
* fix: address all Codex review findings for 1.5.0 release
- Revert _feature_hash to SHA-1 with usedforsecurity=False (P1: preserve
legacy feature hash mapping; satisfies FIPS and CodeQL without changing
the deterministic vector space)
- Add semantic embedder degradation guard: skip rebuild when active space
was built by a real semantic model but current embedder is degraded (P1)
- Add _safe_upsert() shim for backward-compatible VectorIndex metadata
handling (P2)
- Hydrate closed-but-inspection-eligible vectors into separate indexes
via include_invalid=True (P2)
- Stabilize consolidation cursor test with keyset-ordered IDs
- Add pydantic importorskip for structured consolidation test
- Ruff format cleanup
* fix: add CodeQL config to exclude SHA1 feature-hashing false positive
The deterministic embedder uses SHA-1 only for feature hashing (hashing
trick) to map tokens to vector dimensions. This is not a security
primitive; usedforsecurity=False is already set. Changing to SHA-256
would invalidate all existing local vectors and break compatibility.
Added .github/codeql/codeql-config.yml to exclude the file from
CodeQL analysis, eliminating the py/weak-sensitive-data-hashing
false positive while preserving the legacy feature-hash mapping.
* fix: refine CodeQL config to query-level exclusion instead of paths-ignore
Use 'queries: exclude id: py/weak-sensitive-data-hashing' instead of
paths-ignore so CodeQL still analyzes the embedder for other potential
issues. The SHA-1 usage is feature hashing (hashing trick), not a
security primitive.
* fix: use paths-ignore for CodeQL SHA1 false positive exclusion
The queries exclude syntax requires a 'uses' field. paths-ignore is the
well-supported approach for excluding specific files from CodeQL analysis.
The embedder file uses SHA-1 only for feature hashing (hashing trick),
not as a security primitive.
---------
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Copy file name to clipboardExpand all lines: .claude-plugin/plugin.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "engraphis-memory",
3
-
"version": "1.4.5",
3
+
"version": "1.5.0",
4
4
"description": "Give agents durable, scoped, explainable memory across sessions and repos via the Engraphis MCP tools. Use when you learn something worth keeping, need prior context before acting, or ask why/how a fact changed. Covers remember/recall, why/timeline, forget/pin/correct, sessions, and code search.",
0 commit comments