@@ -7,6 +7,68 @@ All notable changes to Engraphis are documented here. Format loosely follows
77
88### Added
99
10+ - Smart MCP ` engraphis_recall_context ` default ` k ` raised 8 -> 50 so the token-budget
11+ packer binds on realistic stores by default. Measured at budget=1024 against a
12+ 49-fact store: 100% labelled-relevance retention and ~ 50% of the store withheld
13+ (savings_ratio 0.0 -> 0.4975) with no caller-side arguments. The packer is the
14+ existing 1.6 contract; the change just makes it the default fast path.
15+ - Smart MCP ` engraphis_remember ` now accepts and forwards ` subject_key ` and
16+ ` claim_kind ` to the classic tool. Without this, every keyed write silently stored
17+ empty keys because the served gateway surface dropped the parameters; the
18+ documented safe-supersession mechanism is now reachable through MCP.
19+ - A new integration at ` integrations/commandcode/session_start_hook.py ` (with
20+ ` scripts/install_cc_hook.py ` for idempotent user-scope install/uninstall) wires
21+ durable-memory recall into Command Code's SessionStart lifecycle: each new
22+ session's first turn receives bounded relevant context as ` additionalContext ` .
23+ Fail-open and silent on any error. Override workspace via
24+ ` ENGRAPHIS_HOOK_WORKSPACE ` ; override the MCP URL via ` ENGRAPHIS_MCP_URL ` .
25+ - Cross-encoder reranker (` cross-encoder/ms-marco-MiniLM-L-6-v2 ` ) is now
26+ reachable as an opt-in config knob (` rerank_model= ` on ` MemoryEngine.create `
27+ / ` ENGRAPHIS_RERANK_MODEL ` ). Evaluated offline on the bundled retrieval gates
28+ (sample.jsonl, codemem.jsonl, k=5): hit@5 stays at 1.0 with zero per-question
29+ regressions, MRR@5 lifts 0.889 -> 0.944 (sample) and 0.962 -> 0.981 (codemem),
30+ with ~ 15 ms per query added. Not the default; flip with a one-line config.
31+
32+ ### Changed
33+
34+ - The reworded-correction detector in ` core/resolve.py ` now supersedes reworded
35+ corrections without a stable ` subject_key ` when the aligned token diff shows
36+ a same-attribute value change (e.g. "the timeout is 30 seconds" -> "we raised
37+ the timeout to 90 seconds"). The strong-evidence branch and the rewrite_gate
38+ branch both require a change marker (e.g. "now", "raised") to be accompanied
39+ by a value_swap on the same shared subject, so a bare "now" can never retire
40+ a fact it merely shares surface nouns with. Vetoes preserve coexisting
41+ distinct facts: clashing environment qualifiers (staging vs production,
42+ folded through ` prod ` /` production ` and ` dev ` /` development ` aliases so a
43+ legitimate correction across short forms does not get vetoed),
44+ named mixed-case identifier swaps (ProviderA -> ProviderB), and clean
45+ noun-for-noun replacements (REST -> GraphQL docs). Measured on the
46+ reproducible corpus shipped at
47+ ` eval/datasets/resolver_reworded_corrections.jsonl ` (44 pairs, 38
48+ positives + 6 negatives); reproduce locally with
49+ ` python -m eval.resolver_reworded_corrections ` or
50+ ` python -m eval.resolver_reworded_corrections --strict ` in CI.
51+ - The ` temporal_splice ` flag passed from ` core/engine.py ` to ` resolve() ` is
52+ now narrowed to the bi-temporal backfill case (a deliberate ` valid_at `
53+ AND a ` subject_key ` ), instead of any ` valid_at ` -pinned write. Scheduled
54+ future writes stay on the present-time veto contract.
55+
56+ ### Fixed
57+
58+ - The Smart MCP gateway ` engraphis_remember ` binding was silently dropping
59+ ` subject_key ` and ` claim_kind ` ; this is the underlying cause of the
60+ benchmark correction-miss pattern that the reworded-correction detector
61+ then had to compensate for.
62+
63+ ### Operational
64+
65+ - The new ` engraphis_recall_context ` tool emits one ` INFO ` log per call with
66+ workspace, k, budget, packed/omitted counts, and the call's measured ms.
67+ Operators get visibility without changing the on-the-wire contract.
68+ The standalone \engraphis-mcp-http\ launcher only configures the root logger when
69+ \ENGRAPHIS_MCP_LOG\ is set to a truthy value (\ / \ rue\ / \yes\ / \info\ /
70+ \on\) ; the default stays silent so the CLI keeps its quiet profile.
71+
1072- The graph's "Show all nodes" toggle is replaced by a dedicated ** Every node** layout built
1173 on a new ultra-performance engine (` engraphis-graph-every.js ` +
1274 ` engraphis-graph-every-worker.js ` , WebGL2-only): all geometry is uploaded once and camera
@@ -125,14 +187,14 @@ All notable changes to Engraphis are documented here. Format loosely follows
125187
126188### Fixed
127189
128- - The Every node dashboard view no longer crashes on open: a declaration-order bug in the
129- renderer threw during construction before anything painted. The scene canvas also keeps its
130- accessible role/label now instead of being hidden from assistive technology.
131- - Import previews now page the source manifest exactly like execution, so vaults whose manifest
132- outgrew one list page (10k identities) no longer show manifest-only files as silently absent
133- from the preview plan; beyond-boundary rows are reported as ` missing ` instead of dropped.
134- Manifest pages now use one read snapshot and de-duplicate identities that move across a
135- cursor while a concurrent import updates their path.
190+ - The Every node dashboard view no longer crashes on open: a declaration-order bug in the
191+ renderer threw during construction before anything painted. The scene canvas also keeps its
192+ accessible role/label now instead of being hidden from assistive technology.
193+ - Import previews now page the source manifest exactly like execution, so vaults whose manifest
194+ outgrew one list page (10k identities) no longer show manifest-only files as silently absent
195+ from the preview plan; beyond-boundary rows are reported as ` missing ` instead of dropped.
196+ Manifest pages now use one read snapshot and de-duplicate identities that move across a
197+ cursor while a concurrent import updates their path.
136198- Importing more than 1,000 files through the dashboard no longer fails with "Internal Server
137199 Error": wizard upload routes parse multipart forms under the advertised 1,500-file ceiling
138200 instead of Starlette's hidden 1,000-part parser default, oversized batches return a clear 413,
@@ -178,7 +240,17 @@ All notable changes to Engraphis are documented here. Format loosely follows
178240 now guards an unknown baseline instead of reporting spurious misses, denial-guard
179241 supersession binds digests computed from the parsed record rather than raw input,
180242 import-job finalization is generation-guarded so a stale worker cannot finalize over a
181- newer attempt, and the finalized-state check completes in constant time.
243+ newer attempt, and the finalized-state check completes in constant time.
244+ - Smart MCP ` engraphis_session ` now accepts ` action="start_session" ` and ` action="end_session" `
245+ (the full tool-name forms the Command Code harness sends when translating the AGENTS.md
246+ ` engraphis_start_session ` /` engraphis_end_session ` shorthand), normalizing them to ` start ` /` end `
247+ before the pattern validation instead of rejecting them with a 400.
248+
249+ ### Documentation
250+
251+ - ` docs/LLM_PROVIDERS.md ` now warns Windows users that ` cmd ` may resolve to ` cmd.exe `
252+ (the built-in Windows command interpreter) instead of the Command Code CLI, and explains
253+ how to diagnose and work around the PATH collision.
182254
183255### Security
184256
0 commit comments