Skip to content

emem, the verifiable memory protocol for the physical world changelog

io.github.vortx-ai/emem

9 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • server.json 1 field changed
    version
    2.4.4 2.4.5

  • llms.txt +2 −2

    https://emem.dev/llms.txt

    − Every patch of ground has a 64-bit address (cell64, ~9.55 m at the equator). A fact is keyed by Cell × Band × Tslot and signed by the responder over the BLAKE3 of its canonical CBOR, so the same content id returns byte-identical bytes from any conformant responder and any client verifies the receipt offline. Reads need no auth. For a single-shot answer to a free-text question, call emem_ask: it routes the question to a place, recalls the relevant bands, and runs the applicable algorithms in one − - [algorithms](https://emem.dev/v1/algorithms): 169 composition recipes (flood_risk, walkability, eudr_compliance, …).+ Every patch of ground has a 64-bit address (cell64, ~9.55 m at the equator). A fact is keyed by Cell × Band × Tslot and signed by the responder over the BLAKE3 of its canonical CBOR, so the same content id returns byte-identical bytes from any conformant responder and any client verifies the receipt offline. Reads need no auth. For a single-shot answer to a free-text question, call emem_ask: it routes the question to a place, recalls the relevant bands, and runs the applicable algorithms in one + - [algorithms](https://emem.dev/v1/algorithms): 172 composition recipes (flood_risk, walkability, eudr_compliance, …).

  • llms.txt +5 −4

    https://emem.dev/llms.txt

    − Every patch of ground has a 64-bit address (cell64, ~9.55 m at the equator). A fact is keyed by Cell × Band × Tslot and signed by the responder over the BLAKE3 of its canonical CBOR, so the same content id returns byte-identical bytes from any conformant responder and any client verifies the receipt offline. Reads need no auth. For a single-shot answer to a free-text question, call emem_ask: it routes the question to a place, recalls the relevant bands, and runs the applicable algorithms in one − - [MCP endpoint](https://emem.dev/mcp): JSON-RPC 2.0 over Streamable HTTP; tools/list returns the 18 core tools by default, tier "all" or the /mcp/full endpoint returns all 115. Every tool is callable by name from either endpoint, so narrowing discovery removes no capability; call emem_tools for the map or one tool's schema. Each tool declares one shape in MCP-standard _meta as dev.emem/shape (the form of the answer: scalar, timeseries, raster, geometry, vector, identity, token, proof, plan, fil− - [ask](https://emem.dev/v1/ask): POST free-text question (+ place) → topic-route → recall → applicable algorithms, in one call.− - [algorithms](https://emem.dev/v1/algorithms): 168 composition recipes (flood_risk, walkability, eudr_compliance, …).+ Every patch of ground has a 64-bit address (cell64, ~9.55 m at the equator). A fact is keyed by Cell × Band × Tslot and signed by the responder over the BLAKE3 of its canonical CBOR, so the same content id returns byte-identical bytes from any conformant responder and any client verifies the receipt offline. Reads need no auth. For a single-shot answer to a free-text question, call emem_ask: it routes the question to a place, recalls the relevant bands, and runs the applicable algorithms in one + - [MCP endpoint](https://emem.dev/mcp): JSON-RPC 2.0 over Streamable HTTP; tools/list returns the 18 core tools by default, tier "all" or the /mcp/full endpoint returns all 116. Every tool is callable by name from either endpoint, so narrowing discovery removes no capability; call emem_tools for the map or one tool's schema. Each tool declares one shape in MCP-standard _meta as dev.emem/shape (the form of the answer: scalar, timeseries, raster, geometry, vector, identity, token, proof, plan, fil+ - [ask](https://emem.dev/v1/ask): POST free-text question (+ place) → topic-route → recall → applicable algorithms, in one call. When vouched research agents concluded something inside the place, the answer adds `research_nearby`: pointers only, never their values.+ - [inferences](https://emem.dev/v1/inferences): POST cell or lat+lng (+ radius_m, default 5000) → signed derivations other agents registered near that place, nearest first, each with its parent tokens, attester, tier and distance. The response states its trust policy (default: keys an organisation vouched for). A signature says who concluded something, never that it is true.+ - [algorithms](https://emem.dev/v1/algorithms): 169 composition recipes (flood_risk, walkability, eudr_compliance, …).
  • AGENTS.md +10 −2

    https://raw.githubusercontent.com/vortx-ai/emem/HEAD/AGENTS.md

    − Two hard-won specifics. CI pins `dtolnay/rust-toolchain@stable`, so the− | MCP tool registry (115 tools) | `crates/emem-mcp/src/lib.rs` |+ Every action in `.github/workflows/` is pinned to a full commit SHA with+ its tag in a trailing comment (`@<sha> # v4.4.0`). A tag can be moved to+ other code; a SHA cannot. To bump one, resolve the new tag with+ `git ls-remote --tags https://github.com/<owner>/<action>` (take the+ peeled `^{}` line for an annotated tag) and change the SHA and the comment+ together.+ Two hard-won specifics. CI installs Rust from the `stable` branch of+ `dtolnay/rust-toolchain` (pinned to a commit like every other action;+ that commit installs whatever stable is current when the job runs), so the+ | MCP tool registry (116 tools) | `crates/emem-mcp/src/lib.rs` |

  • AGENTS.md +27 −14

    https://raw.githubusercontent.com/vortx-ai/emem/HEAD/AGENTS.md

    − Rust workspace, 19 crates, version 2.4.3, MSRV 1.91. `emem-guard` is the verdict server for AI inference checkpoints (Anthropic Inference hooks, Claude Code hooks); it is a separate binary and shares no code path with the responder. The bulk of the code− `crates/emem-fetch/src/*.rs` (27 data connectors + 7 utility modules).− # Production binary (what /home/ubuntu/.config/systemd/user/emem-server.service runs)− # After release rebuild on systems that need port 443 binding:− sudo setcap 'cap_net_bind_service=+ep' target/release/emem-server− systemctl --user restart emem-server.service− `scripts/redeploy.sh` does build + setcap + restart in one shot.− Crate-level integration tests live under `crates/<crate>/tests/`. Only two− crates have those today: `emem-fact` (round-trip) and `emem-fetch` (live COG fetch).− Both gates run in `.github/workflows/ci.yml` against Linux + macOS, plus− an MSRV 1.91 build job. Don't ship a commit that fails either: the CI− - **No `unsafe`.** Every crate carries `#![forbid(unsafe_code)]` at the top.− | Open-data connectors | `crates/emem-fetch/src/*.rs` (27 data modules + 7 utility) |− | Registries (8 manifests) | `crates/emem-core/data/*.json` + `src/` |+ Rust workspace, 19 crates, version 2.4.4, MSRV 1.91. `emem-guard` is the verdict server for AI inference checkpoints (Anthropic Inference hooks, Claude Code hooks); it is a separate binary and shares no code path with the responder. The bulk of the code+ `crates/emem-fetch/src/*.rs` (27 data connectors + 8 utility modules).+ # Release binary, for a local or self-hosted node+ Production (emem.dev) does not run a binary built on the host. It runs a+ container under the system unit `/etc/systemd/system/emem-server.service`,+ which starts the image with `docker run`. To deploy:+ 1. Push the commit to `main`.+ 2. Wait for the `publish` workflow (`.github/workflows/publish.yml`) to+    finish with success. It builds and pushes the image.+ 3. Run `/home/ubuntu/emem-ops/pending_deploy.sh <new7> <good7>`. Both+    arguments are 7-character commit shas: the new one, and the last good+    one to roll back to.+ Do not use `scripts/redeploy.sh` on the production host. It builds on the+ host and restarts a user unit that production no longer uses. It is only+ for a node that runs the binary directly.+ Crate-level integration tests live under `crates/<crate>/tests/`. Five+ crates have those today: `emem-airgap`, `emem-fact` (round-trip),+ `emem-fetch` (live COG fetch), `emem-primitives` and `emem-trace`.+ Both gates run in `.github/workflows/ci.yml` on Linux. Only the+ `test` job runs on Linux and macOS. There is also an MSRV 1.91 build+ job. Don't ship a commit that fails either: the CI+ - **No `unsafe`.** Every crate carries `#![forbid(unsafe_code)]` at the top,+   except three that do not yet: `emem-airgap`, `emem-scorecard` and+   `emem-sleep-agent`. They use no `unsafe`; add the attribute when you+   next edit them.+ | Open-data connectors | `crates/emem-fetch/src/*.rs` (27 data modules + 8 utility) |+ | Registries (10 manifest digests, `GET /v1/manifests`) | `crates/emem-core/data/*.json` + `src/` |

  • server.json 1 field changed
    version
    2.4.3 2.4.4

  • llms.txt +2 −2

    https://emem.dev/llms.txt

    − Every patch of ground has a 64-bit address (cell64, ~9.55 m at the equator). A fact is keyed by Cell × Band × Tslot and signed by the responder over the BLAKE3 of its canonical CBOR, so the same content id returns byte-identical bytes from any conformant responder and any client verifies the receipt offline. Reads need no auth. For a single-shot answer to a free-text question, call emem_ask: it routes the question to a place, recalls the relevant bands, and runs the applicable algorithms in one − - [MCP endpoint](https://emem.dev/mcp): JSON-RPC 2.0 over Streamable HTTP; tools/list returns the 18 core tools by default, tier "all" or the /mcp/full endpoint returns all 114. Every tool is callable by name from either endpoint, so narrowing discovery removes no capability; call emem_tools for the map or one tool's schema. Each tool declares one shape in MCP-standard _meta as dev.emem/shape (the form of the answer: scalar, timeseries, raster, geometry, vector, identity, token, proof, plan, fil+ Every patch of ground has a 64-bit address (cell64, ~9.55 m at the equator). A fact is keyed by Cell × Band × Tslot and signed by the responder over the BLAKE3 of its canonical CBOR, so the same content id returns byte-identical bytes from any conformant responder and any client verifies the receipt offline. Reads need no auth. For a single-shot answer to a free-text question, call emem_ask: it routes the question to a place, recalls the relevant bands, and runs the applicable algorithms in one + - [MCP endpoint](https://emem.dev/mcp): JSON-RPC 2.0 over Streamable HTTP; tools/list returns the 18 core tools by default, tier "all" or the /mcp/full endpoint returns all 115. Every tool is callable by name from either endpoint, so narrowing discovery removes no capability; call emem_tools for the map or one tool's schema. Each tool declares one shape in MCP-standard _meta as dev.emem/shape (the form of the answer: scalar, timeseries, raster, geometry, vector, identity, token, proof, plan, fil
  • AGENTS.md +2 −2

    https://raw.githubusercontent.com/vortx-ai/emem/HEAD/AGENTS.md

    − Rust workspace, 19 crates, version 2.4.2, MSRV 1.91. `emem-guard` is the verdict server for AI inference checkpoints (Anthropic Inference hooks, Claude Code hooks); it is a separate binary and shares no code path with the responder. The bulk of the code− | MCP tool registry (114 tools) | `crates/emem-mcp/src/lib.rs` |+ Rust workspace, 19 crates, version 2.4.3, MSRV 1.91. `emem-guard` is the verdict server for AI inference checkpoints (Anthropic Inference hooks, Claude Code hooks); it is a separate binary and shares no code path with the responder. The bulk of the code+ | MCP tool registry (115 tools) | `crates/emem-mcp/src/lib.rs` |

  • server.json 2 fields changed
    description
    Shared memory for AI agents. One address per fact, one signature you check. No key to read. Shared, verifiable memory for machines and AI. Encode where data lives; decode with any AI.
    version
    2.4.2 2.4.3