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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

Build production-grade multi-agent systems with built-in safety, auditability, and control. GraphARC adds a governance layer on top of LangGraph: a planner *proposes* a subgraph, a deterministic checker *admits* it, and only then does anything execute. Every transition is permitted, every loop is bounded, and afterwards you can prove what happened and why it stopped.

**Status:** Early days (`0.1.1`) — the API is not stable yet. `pip install grapharc` — see [Install](#install).
**Status:** Early days (`0.1.2`) — the API is not stable yet. `pip install grapharc` — see [Install](#install).

### What makes GraphARC different

Expand Down Expand Up @@ -507,7 +507,7 @@ Re-derived on 2026-07-28 by running each item, not by reading the commit log.
- **`.env` is found by walking up parent directories; `grapharc.toml` is not.** The config layer refuses an upward search on purpose — a run must not be governed by a file you did not know about. The credential loader predates that decision and still searches upward, so the thing that *spends money* is discovered more eagerly than the thing that *constrains* it.
- **`grapharc run` has no budget unless you give it one.** Set any of `--max-tokens`, `--max-iterations`, `--max-seconds`, or `--max-concurrency`; without them each dimension is unlimited and the gate admits a topology of any worst-case cost.

**Verified this pass:** `pytest` → 1,533 passed, 12 deselected (the live ones); `ruff check .` clean; all eight `grapharc demo` stages green, plus `grapharc plan` and `grapharc run`; the wheel builds and imports all 103 submodules in a clean virtualenv with `[all]`. The test count is a snapshot, not a property of the project — `pytest` re-derives it in one command, which is the only reason it is quoted.
**Verified this pass:** `pytest` → 1,754 passed, 12 deselected (the live ones); `ruff check .` clean; all eight `grapharc demo` stages green, plus the `trace` / `metrics` / `viz` / `replay` tour against a freshly recorded demo trace; the wheel builds and imports all 116 submodules in a clean virtualenv with `[all]`. The test count is a snapshot, not a property of the project — `pytest` re-derives it in one command, which is the only reason it is quoted.

[ROADMAP.md](ROADMAP.md) tracks what is built and what is not, item by item.

Expand Down
4 changes: 2 additions & 2 deletions docs/cookbook/01-basics.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ projection instead and says which fields it dropped.
`tests/test_cookbook_basics.py` reproduces every recipe here and asserts these
exact strings, so the page cannot rot quietly.

Verified against `grapharc 0.1.0`, Python 3.14.6, `langgraph 1.2.9`,
Verified against `grapharc 0.1.2`, Python 3.14.6, `langgraph 1.2.9`,
`langchain-core 1.5.1`, `pydantic 2.13.4`.

Each snippet is a complete file. Save it and run it; nothing carries over between
Expand All @@ -41,7 +41,7 @@ uv run grapharc --version
Output:

```
grapharc 0.1.0
grapharc 0.1.2
```

Everything below uses only the base install — no API key, no network, no optional
Expand Down
4 changes: 2 additions & 2 deletions docs/cookbook/06-serving-and-ops.md
Original file line number Diff line number Diff line change
Expand Up @@ -1062,7 +1062,7 @@ with TestClient(app) as client:
```

```
health : {'status': 'ok', 'version': '0.1.1', 'graphs': ['qa']}
health : {'status': 'ok', 'version': '0.1.2', 'graphs': ['qa']}
created: 201 queued
status : succeeded
answer : Budgets cap iterations, tokens and time.
Expand Down Expand Up @@ -1259,7 +1259,7 @@ graphs : qa
ctrl-c to stop

$ curl -s localhost:8124/healthz
{"status":"ok","version":"0.1.1","graphs":["qa"]}
{"status":"ok","version":"0.1.2","graphs":["qa"]}

$ curl -s -X POST localhost:8124/sessions -H 'content-type: application/json' \
-d '{"graph":"qa","input":{"question":"how do budgets work?"}}'
Expand Down
2 changes: 1 addition & 1 deletion grapharc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from grapharc.runtime.graph import GraphARC, WritePermissionError
from grapharc.runtime.state import GraphARCState

__version__ = "0.1.1"
__version__ = "0.1.2"

__all__ = [
"GraphARC",
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "grapharc"
version = "0.1.1"
version = "0.1.2"
description = "A graph engineering toolkit on LangGraph: typed state contracts, per-node write permissions, enforced budgets, and JSONL traces that double as replay points."
readme = "README.md"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion tests/test_cookbook_basics.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@


def test_version_matches_the_page():
assert __version__ == "0.1.1"
assert __version__ == "0.1.2"


# -- "How do I build and run my first graph?" ------------------------------
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

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

Loading