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 README.md
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ Claims carry provenance — source, observation time, and the run that produced

**Contradiction detection reports; it never resolves.** A new claim sharing a normalized (subject, predicate) with a stored one and differing in object is flagged. That is a structural test: it will not relate "is fast" to "is slow", will not match a rephrased object, and *will* flag a legitimately multi-valued predicate as disagreement. Auto-superseding on a detected conflict would delete half a multi-valued fact inside the one subsystem whose promise is that facts are never destroyed, so a caller supersedes on purpose or not at all.

The limit to know: **the in-process store is still the default.** `grapharc demo stage6` and `grapharc demo capstone` keep claims in a dict for the life of the process unless you pass `--memory PATH`, which hands them the `SQLiteMemoryStore` — verified to survive across two separate interpreters, not just two calls in one. In-process stays the default so a plain run writes nothing you did not ask for. `pyproject.toml` also declares a `memory` extra for Neo4j that has no implementation behind it.
The limit to know: **the in-process store is still the default.** `grapharc demo stage6` and `grapharc demo capstone` keep claims in a dict for the life of the process unless you pass `--memory PATH`, which hands them the `SQLiteMemoryStore` — verified to survive across two separate interpreters, not just two calls in one. In-process stays the default so a plain run writes nothing you did not ask for. The durable stores that exist are `SQLiteMemoryStore` (no extra needed) and `LadybugMemoryStore` (the `ladybug` extra); there is no extra beyond those.

## Sessions, the HTTP API, and policy

Expand Down
3 changes: 2 additions & 1 deletion ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,8 @@ Everything here works and nothing calls it.
- [x] **8.7 — Hand a durable store to the shipped graphs.** `grapharc run
--memory PATH` gives `stage6` and `capstone` the `SQLiteMemoryStore`; the
in-process one remains the default so a plain run stays hermetic. The
`memory` extra still names Neo4j with nothing importing it.
`memory` extra that named Neo4j with nothing importing it was removed;
a Neo4j-backed store would bring its own extra with it.

## 9. Triggers & surfaces — `[~] ~55%`

Expand Down
7 changes: 1 addition & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,6 @@ server = [
mcp = [
"mcp>=1.2",
]
# Neo4j-backed claim store (ROADMAP 8.x). Nothing imports `neo4j` today; the
# durable store that does exist is SQLite-backed and needs no extra.
memory = [
"neo4j>=5.20",
]
# LadybugDB-backed claim store — grapharc/memory/ladybug_store.py imports this
# one, unlike the `memory` extra above. The distribution is `real-ladybug`, not
# `ladybug`: the latter name belongs to Ladybug Tools, an unrelated
Expand All @@ -115,7 +110,7 @@ slack = [
]
# Everything above. Self-referential so it cannot drift out of sync.
all = [
"grapharc[api,ladybug,mcp,memory,ollama,openai,openrouter,otel,server,slack]",
"grapharc[api,ladybug,mcp,ollama,openai,openrouter,otel,server,slack]",
]

[dependency-groups]
Expand Down
30 changes: 2 additions & 28 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading