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 .cursor/skills/SKILL-GRAPH.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Audience:** model. Wire SSOT: [memnet-format](memnet-format/SKILL.md) and `docs/grammar/gql-wire-profile.md`. Do **not** treat this file as the session graph.

This folder **vendors** the MemNet stack. Hatch **0.19.5**; published PyPI is **`memnet-llm==0.19.5`**. Cue then `pin_map`; `find` if ego unknown. **GQL only.** Package SemVer `a.b.c` (claim / usage-method revision / same-method cut): `docs/ROADMAP.md`. Do not invent 0.20.
This folder **vendors** the MemNet stack. Hatch **0.19.6**; published PyPI remains **`memnet-llm==0.19.5`** until upload. Cue then `pin_map`; `find` if ego unknown. **GQL only.** Package SemVer `a.b.c` (claim / usage-method revision / same-method cut): `docs/ROADMAP.md`. Do not invent 0.20.

## Routing

Expand Down
2 changes: 1 addition & 1 deletion .cursor/skills/mcp-memnet/references/wire-format.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ CREATE (m:MOD {path: 'parts/memnet-mcp/software/memnet_mcp/server.py'})-[:define
## Pin map economics

- Cue narrowly (`TSK_*`, `qname=`, one interior `session=`)
- Cap `max_rows`. Do not clip and call it Shape — cut a nested session instead
- Cap `max_rows`. Do not clip and call it Shape — cut a nested session instead. Clipped emit carries `## Truncation`.
- `view=shell` is grain on a seed, not 0.11 outline
- Prefer `housekeep_stats` + settle over stuffing old maps

Expand Down
6 changes: 3 additions & 3 deletions .cursor/skills/memnet-format/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ metadata:
pattern: tool-wrapper
version: "5.3"
domain: data-formats,memnet
product: memnet-llm==0.19.5
product: memnet-llm==0.19.6
token_guardrails: |
- Wire SSOT: docs/grammar/gql-wire-profile.md. This skill is MemNet-specific only.
- pin_map from a cue; leftover anchor= is leftover. Do not dump S.
Expand All @@ -17,7 +17,7 @@ token_guardrails: |

# MemNet formats

Pair with [mcp-memnet](../mcp-memnet/SKILL.md). Formal SSOT: `docs/grammar/gql-wire-profile.md`. Hatch **0.19.5**.
Pair with [mcp-memnet](../mcp-memnet/SKILL.md). Formal SSOT: `docs/grammar/gql-wire-profile.md`. Hatch **0.19.6**.

**GQL only.** Node / edge / property. Do not teach Layer, Tier A, pipe `@TAG`, or TOON/TRON. leftover `id:'NEW'` / leftover `anchor=` are leftover.

Expand All @@ -28,7 +28,7 @@ MCP `pin_map` / CLI `query pin-map` emits a bounded neighbourhood. Parse envelop
| Control | Product use |
|---------|-------------|
| `kind` / `locators` / `keyword` / `cue` / `session` | Cue \(q\). Empty \(q\) = 0.11 outline |
| `depth` / `max_rows` | Hard bound. Raise depth only if the slice is too thin. Over \(M\): cut a nested session — do not clip and call it Shape |
| `depth` / `max_rows` | Hard bound. Raise depth only if the slice is too thin. Over \(M\): cut a nested session — do not clip and call it Shape. When \(M\) (or hop / shell grain) clips, the emit carries `## Truncation` (CueConflict-family honesty). |
| `view` | Grain on a **seed** (`shell` / `interior`). Not the outline |
| leftover `anchor` / `anchors` | leftover nicknames |

Expand Down
4 changes: 2 additions & 2 deletions .cursor/skills/memnet-reference/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ metadata:
pattern: pipeline
version: "2.3"
domain: memnet
product: "0.19.5"
product: "0.19.6"
---

# MemNet product development reference
Expand All @@ -19,7 +19,7 @@ Repo skill for **building** MemNet in **this** repository. Doctrine SSOT is `doc

This checkout **vendors** agent skills under `.cursor/skills/` (core: `memnet-use` + MCP/format/nested/multitask). Load those when **using** MemNet; load **this** skill only when changing the engine, generic MCP, grammar, product SysML, or packaging.

**Product:** Hatch **0.19.5** (CLI `memnet`). Published PyPI wheel is **`memnet-llm==0.19.5`**. Version map: `docs/ROADMAP.md`. Shape: `docs/SHAPE.md`. **1.0** = 0.5–0.8 claimed (do not tag from this skill).
**Product:** Hatch **0.19.6** (CLI `memnet`). Published PyPI wheel remains **`memnet-llm==0.19.5`** until upload. Version map: `docs/ROADMAP.md`. Shape: `docs/SHAPE.md`. **1.0** = 0.5–0.8 claimed (do not tag from this skill).

**`a.b.c` (ROADMAP law).** `a` = claim / generation (`0` = 1.0 unclaimed; `1` = claim of 0.5–0.8). `a` moves only if the contract breaks (Recall=`pin_map` / Commit=`mutate`, GraphElement identity, GQL-only wire). `b` = usage-method revision (new required loop step, new product tool, cue/outline/identity law, new goldfish verb). Historical extras **0.10–0.19** were `b`. N-server (#47) is not a `b`. `c` = same-method cut (honesty, leftover naming, docs/skills, wheel/tag, caps, façade, faster same `cue → pin_map → mutate`). Efficiency on the current loop is **`0.19.c`**, not `0.20`. Do not invent a 0.20 extra. Do not claim 1.0.

Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ LLM hub for this system repo. Prefer in-repo skills and docs over ad-hoc inventi

## Mission

**MemNet** (Net of Memory) is **mission working memory** — a session graph (GQL **node**/vertex, **edge**/relationship, **property**) **between** LLM call pipelines and data search, not the corpus and not GraphRAG. Agents read a bounded **live pin map** each turn and write in the same **GQL (openCypher-shaped)** family — redefined **Write = display** via shaped subgraph emit ([`docs/grammar/gql-wire-profile.md`](docs/grammar/gql-wire-profile.md)). In-session recall is **serial**: kind/keyword cue, then `pin_map` neighbourhood. Primary read: MCP `pin_map` / CLI `query pin-map`; leftover `query_warm` / `query warm` are leftover aliases. Aims (MN-REQ-00): save wall-clock time and tokens while keeping factual accuracy. Aids **system**, **programme**, **software**, **firmware**, **hardware**, and **documentation**. Transport: **in-process first** (single-agent; TCP fallback). **Multitask** requires TCP serve or streamable-http MCP — see Multitask policy below. This repo is **engine + generic memnet-mcp** only — novel-writer dropped. Repo product **0.19.5** (Hatch SSOT; published PyPI **`memnet-llm==0.19.5`**; [#148](https://github.com/chouswei/MemNet/pull/148) nickname-off-`pin_map` published; 0.19.5 honesty `c`: `SHAPE_DROP_KEYS`). **1.0** = 0.5–0.8 claimed (unclaimed). See `README.md`, [`docs/SHAPE.md`](docs/SHAPE.md), and `docs/grammar/`.
**MemNet** (Net of Memory) is **mission working memory** — a session graph (GQL **node**/vertex, **edge**/relationship, **property**) **between** LLM call pipelines and data search, not the corpus and not GraphRAG. Agents read a bounded **live pin map** each turn and write in the same **GQL (openCypher-shaped)** family — redefined **Write = display** via shaped subgraph emit ([`docs/grammar/gql-wire-profile.md`](docs/grammar/gql-wire-profile.md)). In-session recall is **serial**: kind/keyword cue, then `pin_map` neighbourhood. Primary read: MCP `pin_map` / CLI `query pin-map`; leftover `query_warm` / `query warm` are leftover aliases. Aims (MN-REQ-00): save wall-clock time and tokens while keeping factual accuracy. Aids **system**, **programme**, **software**, **firmware**, **hardware**, and **documentation**. Transport: **in-process first** (single-agent; TCP fallback). **Multitask** requires TCP serve or streamable-http MCP — see Multitask policy below. This repo is **engine + generic memnet-mcp** only — novel-writer dropped. Repo product **0.19.6** (Hatch SSOT; published PyPI remains **`memnet-llm==0.19.5`** until upload; 0.19.6 honesty `c`: Truncation on clipped `pin_map`). **1.0** = 0.5–0.8 claimed (unclaimed). See `README.md`, [`docs/SHAPE.md`](docs/SHAPE.md), and `docs/grammar/`.

## Where to look

Expand Down
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ This project uses Semantic Versioning as **interpreted for MemNet**: package `a.

## [Unreleased]

## [0.19.6] - 2026-09-07

### Changed
- **Honesty `c` — Truncation on clipped `pin_map`** — When a hard cap clips ShapeWalk (`max_rows` \(M\), hop \(k\) vs `max_depth`, fan-out, or `view=shell` grain), the shaped emit **MUST** carry `## Truncation truncated=true M=… omitted=… reason=…` (CueConflict / Reserves family). Caps stay hard; SHALL NOT silent-clip. When the offer fits, the mark is absent. `SHAPE_DROP_KEYS` / hid honesty unchanged. Export header MAY add `truncated=1`. Package **0.19.6** patch on **0.19**. Numbered extras **0.10–0.19** unchanged. No 0.20 extra. `operatorCount` stays 2. Hatch **0.19.6**; published PyPI remains **`memnet-llm==0.19.5`** until upload. Surfaces: [`docs/operations/honesty-c-wire-audit.md`](docs/operations/honesty-c-wire-audit.md).
- **Package identity 0.19.6** — Hatch / `project.toml` / `memnet.__version__` honesty cut on **0.19**.

## [0.19.5] - 2026-09-06

### Changed
Expand Down Expand Up @@ -690,7 +696,8 @@ Initial public release.
- Caps are configurable via `MEMNET_MAX_*` env vars.
- Sessions live in process memory only. On `serve` restart, all sessions are gone unless saved via `session save`.

[Unreleased]: https://github.com/chouswei/MemNet/compare/v0.19.5...HEAD
[Unreleased]: https://github.com/chouswei/MemNet/compare/v0.19.6...HEAD
[0.19.6]: https://github.com/chouswei/MemNet/compare/v0.19.5...v0.19.6
[0.19.5]: https://github.com/chouswei/MemNet/compare/v0.19.4...v0.19.5
[0.19.4]: https://github.com/chouswei/MemNet/compare/v0.19.3...v0.19.4
[0.19.0]: https://github.com/chouswei/MemNet/compare/v0.9.0...v0.19.0
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ MemNet sits **between** LLM call pipelines and data search (MN-REQ-00). Corpus l

This repo ships the engine + generic MCP only. **Product shape:** [`docs/SHAPE.md`](docs/SHAPE.md). **Pinned role:** working set of **a few technical documents** (atoms and locators, not PDF bytes) plus live `TSK`/`USR`/`MOD`, re-read fast. Tens of MiB typical; **hundreds of MiB still in role**; gigabytes = RAG/cabinet.

Package **`memnet-llm`** (CLI **`memnet`**). Python ≥ 3.11. Hatch **0.19.5**; published PyPI wheel is **`memnet-llm==0.19.5`** ([#148](https://github.com/chouswei/MemNet/pull/148) nickname-off-`pin_map`; 0.19.5 honesty `c`: `SHAPE_DROP_KEYS`). **1.0** stays unclaimed. SemVer meaning (`a.b.c`): [`docs/ROADMAP.md`](docs/ROADMAP.md).
Package **`memnet-llm`** (CLI **`memnet`**). Python ≥ 3.11. Hatch **0.19.6**; published PyPI wheel remains **`memnet-llm==0.19.5`** until upload (0.19.6 honesty `c`: Truncation on clipped `pin_map`; 0.19.5 `SHAPE_DROP_KEYS` is published). **1.0** stays unclaimed. SemVer meaning (`a.b.c`): [`docs/ROADMAP.md`](docs/ROADMAP.md).

## Install + quick CLI

Expand Down
2 changes: 1 addition & 1 deletion docs/LLM-GUIDE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# MemNet — Agent Playbook (for LLMs)

**Class:** developers — MemNet engine / MCP / GQL wire / agent operating doctrine. Index: [`docs/README.md`](README.md). Product shape: [`SHAPE.md`](SHAPE.md). **Product 0.19.5.** Hatch **0.19.5**; published PyPI is **`memnet-llm==0.19.5`**. **1.0** = 0.5–0.8 claimed (unclaimed). SemVer `a.b.c`: [`ROADMAP.md`](ROADMAP.md).
**Class:** developers — MemNet engine / MCP / GQL wire / agent operating doctrine. Index: [`docs/README.md`](README.md). Product shape: [`SHAPE.md`](SHAPE.md). **Product 0.19.6.** Hatch **0.19.6**; published PyPI remains **`memnet-llm==0.19.5`** until upload. **1.0** = 0.5–0.8 claimed (unclaimed). SemVer `a.b.c`: [`ROADMAP.md`](ROADMAP.md).

**Dialect teach = GQL only** — [`grammar/gql-wire-profile.md`](grammar/gql-wire-profile.md). ADR: [`adr/ADR-001-gql-agent-wire.md`](adr/ADR-001-gql-agent-wire.md).
**M2 shipped:** engine/MCP accept openCypher-shaped GQL and emit shaped `pin_map`. Do **not** teach Layer / Tier A / `@TAG` pipe as agent wire.
Expand Down
4 changes: 2 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Do **not** teach Layer / Tier A. **1.0** = claim of 0.5–0.8 (unclaimed).
| Doc | Role |
|-----|------|
| [`SHAPE.md`](SHAPE.md) | Product shape from the problem (0.8 teach) |
| [`ROADMAP.md`](ROADMAP.md) | **SemVer SSOT** — locked `a.b.c`; extras 0.10–0.19 in Hatch **0.19.5** |
| [`ROADMAP.md`](ROADMAP.md) | **SemVer SSOT** — locked `a.b.c`; extras 0.10–0.19 in Hatch **0.19.6** |
| [`adr/ADR-001-gql-agent-wire.md`](adr/ADR-001-gql-agent-wire.md) | Accepted: GQL wire; **no Layer** |

## Wire — `grammar/`
Expand Down Expand Up @@ -61,7 +61,7 @@ Multitask MUST for this product. Index: [`operations/README.md`](operations/READ
| Doc | Role |
|-----|------|
| [`operations/multi-agent-sessions.md`](operations/multi-agent-sessions.md) | Multitask operating model (as-is 0.8; RSV + Path-B ingest shipped; full ACL modes to-be) |
| [`operations/honesty-c-wire-audit.md`](operations/honesty-c-wire-audit.md) | 0.19.5 hid / nickname emit audit |
| [`operations/honesty-c-wire-audit.md`](operations/honesty-c-wire-audit.md) | 0.19.6 Truncation + 0.19.5 hid emit audit |

Product skill: [`.cursor/skills/memnet-reference/`](../.cursor/skills/memnet-reference/). SysML trail: MN-REQ-12 → [`sysml-models/outputs/multitask-case-study.md`](../sysml-models/outputs/multitask-case-study.md).

Expand Down
14 changes: 7 additions & 7 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

**Audience:** product developers. Dialect teach = **GQL** ([`grammar/gql-wire-profile.md`](grammar/gql-wire-profile.md)). Product shape: [`SHAPE.md`](SHAPE.md). British English.

**Package now:** Hatch **0.19.5** (`memnet.__version__`). Published PyPI wheel is **`memnet-llm==0.19.5`**. Numbered extras **0.10–0.19** are in this package (unchanged). [#148](https://github.com/chouswei/MemNet/pull/148) nickname-off-`pin_map` is published; **0.19.5** honesty `c` applies `SHAPE_DROP_KEYS` on GQL emit. GraphGlot parse front is on master (#109 @ 73a63c9b). Extra **0.14** claims `liveNeo4jClaimed=true`. **1.0** is still unclaimed (0.5–0.8).
**Package now:** Hatch **0.19.6** (`memnet.__version__`). Published PyPI wheel remains **`memnet-llm==0.19.5`** until upload. Numbered extras **0.10–0.19** are in this package (unchanged). **0.19.6** honesty `c` highlights Truncation when `pin_map` clips. GraphGlot parse front is on master (#109 @ 73a63c9b). Extra **0.14** claims `liveNeo4jClaimed=true`. **1.0** is still unclaimed (0.5–0.8).

**Last updated:** 2026-09-07 (`a.b.c` law locked; package **0.19.5** honesty `c` — store-identity keys off shaped emit; extras **0.10–0.19** unchanged; Hatch **0.19.5**; PyPI **`memnet-llm==0.19.5`**; ranking honesty [#147](https://github.com/chouswei/MemNet/pull/147); do not claim **1.0**; do not invent a **0.20** extra).
**Last updated:** 2026-09-07 (`a.b.c` law locked; package **0.19.6** honesty `c` — Truncation on clipped `pin_map`; extras **0.10–0.19** unchanged; Hatch **0.19.6**; PyPI **`memnet-llm==0.19.5`** until upload; do not claim **1.0**; do not invent a **0.20** extra).

Patch notes: [`../CHANGELOG.md`](../CHANGELOG.md). CHANGELOG still follows Keep a Changelog. This file is how MemNet **interprets** SemVer — not a silent switch to npm-strict major=breaking for 0.x extras.

Expand Down Expand Up @@ -39,13 +39,13 @@ One concern per `b`. Do **not** fuse two usage-method changes into one `b`. Skip

Same usage method. Honesty, leftover naming, docs / skills, wheel / tag, caps, façade, **faster same goldfish loop** (`cue → pin_map → mutate` with no new agent step).

**0.19.1–0.19.5** were this (`session_close` + `sessions|n/max` + cap 1024 + ranking + nickname-off-`pin_map` + `SHAPE_DROP_KEYS` shipped as `c` because the loop stayed the same).
**0.19.1–0.19.6** were this (`session_close` + `sessions|n/max` + cap 1024 + ranking + nickname-off-`pin_map` + `SHAPE_DROP_KEYS` + Truncation-on-clip shipped as `c` because the loop stayed the same).

Pure efficiency / speed on the current loop is **`0.19.c`**, not `0.20`.

### Consequences

- Package stays **0.19.5** until a later cut. Extras **0.10–0.19** stay the owns table below. **1.0** stays unclaimed.
- Package stays **0.19.6** until a later cut. Extras **0.10–0.19** stay the owns table below. **1.0** stays unclaimed.
- **1.0 does not wait** on 0.19.c, efficiency, HostSearch, Peak_L, catalog Snap, N-server, or GraphGlot.
- A new cabinet adapter does **not** move `a`. Hosted Agens as a product service, first-class `PORT`, and full ACL modes / `session_token` stay Later / unnumbered until a cut exists.

Expand Down Expand Up @@ -99,8 +99,8 @@ Handoff = **session id** (+ cue / write scope). Peers **re-`pin_map`** from labe
| **0.7.0** | Live AgensGraph hydrate/flush; `liveCabinetClaimed=true`. Server not vendored. Fake + skip unless `MEMNET_AGENSGRAPH_URL` | **Shipped** (`v0.7.0`) |
| **0.8.0** | GQL-only **teach** + product **shape for people** (`SHAPE.md`, playbook, application-note contract, Multitask honesty). Docs only. **No** engine cut. Cabinet stays claimed | **Shipped** (`v0.8.0`) |
| **0.9.0** | Neo4j `DurableStoreAdapter` client (`memnet-llm[neo4j]`); factory both-URL rule; [`cabinet/neo4j-buffer.md`](cabinet/neo4j-buffer.md). Live round-trip claimed later as extra **0.14**. Cabinet extra, **not** a 1.0 gate | **Shipped** (`v0.9.0` era; extras later packaged as 0.19.0) |
| **0.10–0.19** | Numbered extras (table below). Each row is one `b` (usage-method revision). Same pattern as 0.9: **not** 1.0 gates | **Packaged** (Hatch **0.19.5**; PyPI **0.19.5**; extras first shipped as 0.19.0) |
| **1.0.0** | **Claim** of **0.5 + 0.6 + 0.7 + 0.8**. Shape mature for people. Not GraphRAG. Not cabinet-only. Not a new engine. This is `a=1` | **Claim when coordinator tags** — package **0.19.5** does not claim 1.0 |
| **0.10–0.19** | Numbered extras (table below). Each row is one `b` (usage-method revision). Same pattern as 0.9: **not** 1.0 gates | **Packaged** (Hatch **0.19.6**; PyPI **0.19.5** until upload; extras first shipped as 0.19.0) |
| **1.0.0** | **Claim** of **0.5 + 0.6 + 0.7 + 0.8**. Shape mature for people. Not GraphRAG. Not cabinet-only. Not a new engine. This is `a=1` | **Claim when coordinator tags** — package **0.19.6** does not claim 1.0 |
| **Later** | Grammar Open / hosted product / leftover ACL; N-server research (#47). GraphGlot parse-front is **shipped**. If **1.0 tags first**, remaining extras become **1.1, 1.2, …** with the same owns (`b` after the claim) | **Out** of 1.0 |

**1.0 MAY ship from 0.9** (claim only). **0.10+ MAY ship before 1.0** as extras (`b` on `a=0`). Do not wait for the other. User-pack GQL rewrite is **sibling** (`chouswei/cursor-user-skills`), not this repo.
Expand Down Expand Up @@ -135,7 +135,7 @@ Do **not** treat leftover 0.9 identity as a live-Neo4j claim. Do **not** claim *

## Numbered extras (0.10–0.19)

One concern per **`b`** (usage-method revision). Dependency order. **In package 0.19.0** (git tag by coordinator). Skip a `b` only if the coordinator writes the skip in CHANGELOG; do not fuse two usage-method changes into one `b`. Cuts on the same method are **`c`** (0.19.1–0.19.5). There is **no** 0.20 extra row.
One concern per **`b`** (usage-method revision). Dependency order. **In package 0.19.0** (git tag by coordinator). Skip a `b` only if the coordinator writes the skip in CHANGELOG; do not fuse two usage-method changes into one `b`. Cuts on the same method are **`c`** (0.19.1–0.19.6). There is **no** 0.20 extra row.

| Version | Owns | Depends on | MUST NOT |
|---------|------|------------|----------|
Expand Down
2 changes: 1 addition & 1 deletion docs/SHAPE.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Do not call MemNet a “shaped RAG” or a “shaped Cypher proxy”.

**0.8.0** is this shape **taught for people** in-repo: this file, GQL-only playbook, application-note contract, Multitask honesty (RSV + Path-B ingest shipped; full ACL modes still to-be).

**1.0.0** is **0.5 + 0.6 + 0.7 + 0.8** claimed — the shape is mature for people: one GQL dialect, goldfish `pin_map`, gated mutate, cue-then-shape (including find when there is no ego), optional **proven** cabinet so \(S\) can outlive a process. Not GraphRAG. Not cabinet-only. Map and **`a.b.c` law:** [`ROADMAP.md`](ROADMAP.md). **Honest install:** Hatch **0.19.5**; published PyPI wheel is **`memnet-llm==0.19.5`** (extras 0.10–0.19; Neo4j client from 0.9; live claimed as extra **0.14**; [#148](https://github.com/chouswei/MemNet/pull/148) nickname-off-`pin_map`; 0.19.5 honesty `c`: `SHAPE_DROP_KEYS`). Optional extras `[mcp]`, `[agensgraph]`, `[neo4j]` (drivers only). **1.0** stays unclaimed.
**1.0.0** is **0.5 + 0.6 + 0.7 + 0.8** claimed — the shape is mature for people: one GQL dialect, goldfish `pin_map`, gated mutate, cue-then-shape (including find when there is no ego), optional **proven** cabinet so \(S\) can outlive a process. Not GraphRAG. Not cabinet-only. Map and **`a.b.c` law:** [`ROADMAP.md`](ROADMAP.md). **Honest install:** Hatch **0.19.6**; published PyPI wheel remains **`memnet-llm==0.19.5`** until upload (extras 0.10–0.19; Neo4j client from 0.9; live claimed as extra **0.14**; 0.19.6 honesty `c`: Truncation on clipped `pin_map`). Optional extras `[mcp]`, `[agensgraph]`, `[neo4j]` (drivers only). **1.0** stays unclaimed.

---

Expand Down
Loading
Loading