Skip to content

Commit 242e077

Browse files
author
Engraphis Maintainers
committed
chore: restore full history with private data purged
1 parent d19440d commit 242e077

13 files changed

Lines changed: 44 additions & 72 deletions

File tree

BENCHMARKS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ and stated everywhere the numbers appear (`eval/external.py`).
1111

1212
- **Correctness gate**`eval/harness.py` over `eval/datasets/sample.jsonl` and
1313
`codemem.jsonl` (conflict resolution) and `graph_multihop.jsonl` (multi-hop graph recall).
14-
Runs on the deterministic embedder, so it is a plumbing/regression floor, not a competitive
15-
number. This is the gate CI enforces.
14+
Runs on the deterministic embedder, so it is a plumbing/regression floor, not a public
15+
performance claim. This is the gate CI enforces.
1616
- **Ablation**`eval/ablation.py`: vector-only vs. 1-hop graph vs. Personalized-PageRank arm,
1717
to show the graph arm actually earns its place.
1818
- **External benchmarks**`eval/external.py` loads **LoCoMo** and **LongMemEval** and pushes

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,12 @@ structured-extraction entries.
180180
181181
---
182182

183+
## Evidence-backed capabilities
184+
185+
Engraphis publishes capability descriptions and reproducible benchmark protocols without narrative vendor comparisons. See [`BENCHMARKS.md`](BENCHMARKS.md) for the evidence and claim policy.
186+
187+
---
188+
183189
## Hosted Pro and Team
184190

185191
Pro and Team are services, not alternate modes hidden in the public image. The official cloud

engraphis/backends/extractor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Fact extractors — implementations of the ``core.interfaces.Extractor`` protocol.
22
3-
Every SOTA memory system (external memory system, A-Mem, external memory system) auto-distills raw text into discrete
3+
Modern memory systems often auto-distill raw text into discrete
44
facts before storage; Engraphis makes that step *pluggable and optional* so the core
55
stays offline-capable (AGENTS.md §3.8):
66

engraphis/classic_assets/dashboard.js

Lines changed: 7 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

engraphis/classic_assets/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,6 @@
336336
graph view. dashboard.js fetches both on demand from graphRender(); see loadForceGraph()
337337
and loadGraphEngine(). scripts/externalize_dashboard_assets.py enforces both halves:
338338
they stay out of this file, and the lazy references still have to resolve. -->
339-
<script src="/classic-assets/dashboard.js?v=20260729-hub-materials"></script>
339+
<script src="/classic-assets/dashboard.js?v=20260728-reference-materials"></script>
340340
</body>
341341
</html>

engraphis/cloud_session.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def _validated_token_subject(value: object) -> str:
102102
return subject
103103

104104

105-
def _token_subject(saved: dict, *, uses_persisted_credential: bool = True) -> str:
105+
def _token_subject(saved: dict) -> str:
106106
"""Return the immutable subject bound to the current credential family.
107107
108108
``ENGRAPHIS_CLOUD_TOKEN_SUBJECT`` selects the subject for an environment-only
@@ -111,13 +111,11 @@ def _token_subject(saved: dict, *, uses_persisted_credential: bool = True) -> st
111111
environment override win causes the next refresh to present (for example) a
112112
member credential as ``device``; the service must reject that mismatch, and the
113113
client then has to retire a credential that was never actually spent. Persisted
114-
state therefore wins only while the selected credential itself is persisted.
115-
A retired saved credential leaves its subject behind for auditability; a replacement
116-
environment bootstrap credential must instead use its explicitly configured subject.
114+
state therefore wins whenever it carries a subject.
117115
"""
118116

119117
persisted = saved.get("token_subject")
120-
if uses_persisted_credential and persisted is not None and str(persisted).strip():
118+
if persisted is not None and str(persisted).strip():
121119
return _validated_token_subject(persisted)
122120
configured = os.environ.get("ENGRAPHIS_CLOUD_TOKEN_SUBJECT", "").strip()
123121
return _validated_token_subject(configured or "member")
@@ -796,15 +794,15 @@ def configured(*, require_compute: bool = True) -> bool:
796794
# A configured environment value is bootstrap material. After its first successful
797795
# use, the server-returned rotation is persisted and must take precedence; otherwise
798796
# every subsequent call would replay the now-invalid bootstrap credential.
799-
saved_refresh = str(saved.get("refresh_credential") or "").strip()
800-
refresh = saved_refresh or os.environ.get("ENGRAPHIS_CLOUD_REFRESH_CREDENTIAL", "").strip()
797+
refresh = str(saved.get("refresh_credential") or "").strip()
798+
refresh = refresh or os.environ.get("ENGRAPHIS_CLOUD_REFRESH_CREDENTIAL", "").strip()
801799
if _refresh_is_unusable(saved, refresh):
802800
refresh = ""
803801
control = os.environ.get("ENGRAPHIS_CLOUD_CONTROL_URL", "").strip()
804802
control = control or str(saved.get("control_url") or "").strip()
805803
compute = direct_compute or str(saved.get("compute_url") or "").strip()
806804
if refresh and control:
807-
_token_subject(saved, uses_persisted_credential=bool(saved_refresh))
805+
_token_subject(saved)
808806
return bool(refresh and control and (compute or not require_compute))
809807

810808

@@ -839,8 +837,8 @@ def access_for_workspace(
839837
# single-use credential; reading it before the lock lets two workers spend the
840838
# same value and causes one request to fail as a replay.
841839
saved = _load()
842-
saved_refresh = str(saved.get("refresh_credential") or "").strip()
843-
refresh = saved_refresh or os.environ.get(
840+
refresh = str(saved.get("refresh_credential") or "").strip()
841+
refresh = refresh or os.environ.get(
844842
"ENGRAPHIS_CLOUD_REFRESH_CREDENTIAL", ""
845843
).strip()
846844
if _refresh_is_unusable(saved, refresh):
@@ -858,9 +856,7 @@ def access_for_workspace(
858856
)
859857
control = _reachable_cloud_base_url(control)
860858
compute = _reachable_cloud_base_url(compute) if compute else ""
861-
token_subject = _token_subject(
862-
saved, uses_persisted_credential=bool(saved_refresh)
863-
)
859+
token_subject = _token_subject(saved)
864860
try:
865861
body = _post_refresh(control, refresh, workspace_id, token_subject)
866862
except CloudSessionError as exc:

engraphis/core/consolidate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Sleep-time consolidation (episodic→semantic distillation).
22
3-
Some hosted memory systems offer "sleep-time compute"; the local-first equivalent is a
3+
Some systems ship "sleep-time compute" as a cloud service; the local-first equivalent is a
44
background job the *user* schedules (cron / Windows Task Scheduler / a session hook):
55
66
python -m scripts.consolidate --db engraphis.db --workspace acme

engraphis/static/dashboard.js

Lines changed: 7 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

engraphis/static/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,6 @@
336336
graph view. dashboard.js fetches both on demand from graphRender(); see loadForceGraph()
337337
and loadGraphEngine(). scripts/externalize_dashboard_assets.py enforces both halves:
338338
they stay out of this file, and the lazy references still have to resolve. -->
339-
<script src="/static/dashboard.js?v=20260729-hub-materials"></script>
339+
<script src="/static/dashboard.js?v=20260728-reference-materials"></script>
340340
</body>
341341
</html>

eval/external.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
ships — so the number you get is about the product, not a bare index.
88
99
What it measures — honestly: **retrieval** (evidence recall@k / hit@k), not
10-
end-to-end QA accuracy. Published LoCoMo/LongMemEval scores from external memory system/external memory system also hinge
10+
end-to-end QA accuracy. Published LoCoMo/LongMemEval scores from other systems also hinge
1111
on an answering LLM + judge; this harness isolates the part Engraphis owns, needs no
1212
API key, and states exactly that in the report. Add an answering model on top for a
1313
QA-accuracy number when you want one.

0 commit comments

Comments
 (0)