Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/skill-assets.sha256
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ c5d0c26f28c9ee14092f9deaf24c98dd8bef49d971fef2b7a537ffb1ab9f2887 .claude-plugin
aeee7a94671ceb306fe2d24c5acc9f2d96ad8a8e7410536566799eea6265f080 skills/engraphis-memory/SKILL.md
055655db84af07561d002f0c69744313d8413c39f3e873f941f0fa0b1e76dc66 skills/engraphis-memory/references/CONVENTIONS.md
9d090a03f5b3f36a34d91f66b72c3844591f6915755ac3a6c6ba5f1b16977de5 skills/engraphis-memory/references/SCOPING.md
07de31349fc135895377cfcf852c490f732c19e83a627c311d724c5d2146dbb5 skills/engraphis-memory/references/TOOLS.md
68cd0add0d1025d495da2163e7c462b76b5fd1a4ff86b527fee49a4d8d6ab29b skills/engraphis-memory/references/TOOLS.md
10 changes: 5 additions & 5 deletions BENCHMARKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,14 +94,14 @@ interpretation and do not count as additional benchmark-quality gains.
### Public numeric evidence registry

Every exact public aggregate retained below comes from the checked-in, public-safe
[`offline-fixtures-v128.json`](docs/benchmark-evidence/offline-fixtures-v128.json) artifact. Its
[`offline-fixtures-v129.json`](docs/benchmark-evidence/offline-fixtures-v129.json) artifact. Its
SHA-256 is
`73f2d1a8cd6e2db070577582a2266f6605efc052800da17db9938f7a274bf755`, also recorded in the
`686394aa5d69cd296360defc5170d956c85565a5282c7766dc6466ba4c6aa6a5`, also recorded in the
adjacent `.sha256` file. The artifact contains no raw questions, answers, prompts, customer data,
or per-record content fingerprints.

The fixture-suite digest is
`6e1be135db67964cfb48a2125ac846a9a420662b69ed4d7f61c21d1c87d971b2`. The artifact defines
`8e2a562ba5d4c785c1e88481f9019446b43608109147cd7cd82597493004af35`. The artifact defines
the digest algorithm and records the SHA-256 of every suite and dataset file. Each evidence ID
also binds its exact command through `sha256(UTF-8 exact command)`:

Expand All @@ -123,10 +123,10 @@ Historical LoCoMo, graph, handoff, consolidation, and security figures remain pr
source artifacts but are omitted from the current chart until each has a matching immutable,
public-safe artifact. The chart labels coding outcomes, external datasets, and operational
capacity as pending evaluation tracks rather than implying scores. Regenerate it with
`python scripts/render_benchmark_report.py --report docs/benchmark-evidence/offline-fixtures-v128.json --output docs/images/context-efficiency.svg` after selecting the report to publish.
`python scripts/render_benchmark_report.py --report docs/benchmark-evidence/offline-fixtures-v129.json --output docs/images/context-efficiency.svg` after selecting the report to publish.

The companion examples are also generated from that artifact with
`python -m scripts.render_benchmark_examples --report docs/benchmark-evidence/offline-fixtures-v128.json --output docs/images/evidence-backed-agent-examples.svg`.
`python -m scripts.render_benchmark_examples --report docs/benchmark-evidence/offline-fixtures-v129.json --output docs/images/evidence-backed-agent-examples.svg`.
The historical-to-executable mapping is in
[`docs/BENCHMARK_CHANGE_COVERAGE.md`](docs/BENCHMARK_CHANGE_COVERAGE.md).

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,9 @@ neither is an end-to-end question-answer score. Coding outcomes, external datase
operational capacity remain separate pending evaluation tracks until their artifacts are selected.

These values are evidence IDs `offline-chunking` and `offline-performance` in
[`offline-fixtures-v128.json`](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/benchmark-evidence/offline-fixtures-v128.json),
[`offline-fixtures-v129.json`](https://github.com/Coding-Dev-Tools/engraphis/blob/main/docs/benchmark-evidence/offline-fixtures-v129.json),
SHA-256
`73f2d1a8cd6e2db070577582a2266f6605efc052800da17db9938f7a274bf755`.
`686394aa5d69cd296360defc5170d956c85565a5282c7766dc6466ba4c6aa6a5`.
[`BENCHMARKS.md`](https://github.com/Coding-Dev-Tools/engraphis/blob/main/BENCHMARKS.md#public-numeric-evidence-registry)
records the matching suite digest, exact commands, and per-command config digests. The offline
fixture registry intentionally excludes external, model-dependent, consolidation, productivity,
Expand Down
24 changes: 19 additions & 5 deletions docs/MCP_CONTRACT.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"schema": "engraphis-mcp-contract/v1",
"sha256": "7e36e055ca003f17fa67194e1c22cc0af0e3c98172228b60989f1206dd1a28d2",
"sha256": "09291ce708f7ea4123252cfb217fef8e41d7043093f68b777f86f4204ab3661a",
"surfaces": {
"classic": [
{
Expand Down Expand Up @@ -3027,7 +3027,7 @@
"readOnlyHint": false,
"title": "Start a memory session"
},
"description": "Open a session to group this work's memories and enable cross-session resume.\n\nCall this at the start of a task in a repo you've worked in before \u2014 if a previous\nsession for the same authenticated user and agent was ended with a summary or open\nthreads, they come back in ``bootstrap`` so you can resume without crossing another\nuser or agent's handoff boundary.\n\nExact retries are reused by default for the same ``(workspace, repo, authenticated\nuser, agent, goal)`` identity. Different users, agents, or goals start distinct\nsessions automatically, and ``force_new=true`` always branches another session.\nBecause that valid option creates a new row on every call, the tool as a whole is\nconservatively annotated as non-idempotent.\n\nReturns:\n str: JSON ``{\"session_id\",\"workspace\",\"repo\",\"goal\",\"status\":\"active\",\"reused\",\n \"bootstrap\":{\"summary\",\"open_threads\",\"outcome\"} or {} if there is no prior\n session}``. Pass ``session_id`` to engraphis_remember and engraphis_end_session.",
"description": "Open a session to group this work's memories and enable cross-session resume.\n\nCall this at the start of a task in a repo you've worked in before \u2014 if a previous\nsession for the same authenticated user and agent was ended with a summary or open\nthreads, they come back in ``bootstrap`` so you can resume without crossing another\nuser or agent's handoff boundary. ``resume_from_session_id`` explicitly selects an\nended handoff from another agent; it requires the same authenticated user and exact\nworkspace/repo, and it fails closed instead of choosing a different session.\n\nExact retries are reused by default for the same ``(workspace, repo, authenticated\nuser, agent, goal)`` identity. Different users, agents, or goals start distinct\nsessions automatically, and ``force_new=true`` always branches another session.\nBecause that valid option creates a new row on every call, the tool as a whole is\nconservatively annotated as non-idempotent.\n\nReturns:\n str: JSON ``{\"session_id\",\"workspace\",\"repo\",\"goal\",\"status\":\"active\",\"reused\",\n \"bootstrap\":{\"summary\",\"open_threads\",\"outcome\"} or {} if there is no prior\n session}``. Explicit resumes also include source timestamps and bounded usage\n metadata. Pass ``session_id`` to engraphis_remember and engraphis_end_session.",
"inputSchema": {
"properties": {
"agent": {
Expand Down Expand Up @@ -3064,6 +3064,20 @@
"description": "Repo scope, if any.",
"title": "Repo"
},
"resume_from_session_id": {
"anyOf": [
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional exact ended session to hand off from another agent. It must belong to this authenticated user and exact workspace/repo; it never falls back to a recent session.",
"title": "Resume From Session Id"
},
"workspace": {
"anyOf": [
{
Expand Down Expand Up @@ -3754,7 +3768,7 @@
"readOnlyHint": false,
"title": "Start or end a memory session"
},
"description": "Start/resume a session or end it with its next-session handoff.",
"description": "Manage sessions and explicit handoffs.",
"inputSchema": {
"properties": {
"action": {
Expand All @@ -3778,7 +3792,7 @@
},
"goal": {
"default": "",
"description": "Goal; start returns bounded context.",
"description": "Optional goal.",
"maxLength": 1000,
"title": "Goal",
"type": "string"
Expand Down Expand Up @@ -3822,7 +3836,7 @@
},
"session_id": {
"default": "",
"description": "Session id for end.",
"description": "End ID or exact ended resume source; same owner/scope, no fallback.",
"maxLength": 200,
"title": "Session Id",
"type": "string"
Expand Down
13 changes: 13 additions & 0 deletions docs/MCP_TOOLS.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,15 @@ class, and execution revalidates availability, scope, authorization, and argumen
The Smart gateway exposes these nine tools directly; advanced capabilities remain available through
discovery and the validated executors.

For a deliberate cross-agent handoff, pass the source ID as `session_id` when starting
`engraphis_session`, or as `resume_from_session_id` to `engraphis_start_session`. The source must
be an ended session owned by the same authenticated user in the exact resolved workspace and
repository. Missing, active, deleted, or unauthorized sources fail closed; the tool never
substitutes a recent handoff. The returned `bootstrap` is
bounded to 512 regex-counted content tokens, at most six open threads, and per-field character
limits. `handoff_source` labels the source start/end times in UTC. Sessions have no automatic
age expiry; those timestamps show age but do not guarantee freshness.

### Smart routine schemas are reduced by design

The two routine Smart tools deliberately accept smaller allow-lists than their Classic
Expand Down Expand Up @@ -183,6 +192,10 @@ an omitted mode means it was not recorded, and is not inferred from current defa
| Operations | `engraphis_check_update` | Refreshes the release cache and reports whether a newer version is available. Update checks are OFF unless `ENGRAPHIS_UPDATE_CHECK` is set to an affirmative value; `=0` keeps them off. |
| Decision | `engraphis_decide` | Advisory typed decisions with local fallback. Remote Jev requires an explicit backend and per-call `allow_remote=true`; missing, malformed, and uncertain answers stay visible. Smart discovery routes it through `engraphis_execute_action` because a remote call may consume allowance. |

Classic `engraphis_start_session` accepts optional `resume_from_session_id` for the same explicit,
same-owner, exact-workspace/repository handoff. Its `handoff_usage` reports the deterministic output
limit; it is context accounting and does not measure provider billing or task-time savings.

Decision inputs must be nonblank for the selected kind: `guard_command` needs `state`;
`classify_contradiction` needs `state` and `existing_content`; `verify_support` needs `state`
and `query`; `verify_completion` needs `state` and `goal`, with optional `recent_actions`.
Expand Down
Loading
Loading