Skip to content

Magnemo 0.6.8 — the yes, asked in the chat

Latest

Choose a tag to compare

@SVTechnologiesInc SVTechnologiesInc released this 14 Oct 04:43
  • The yes is one click where you already are. When an agent stages a clean note through the MCP server and the
    client can put a form to its user (MCP elicitation), Magnemo asks the client to ask you: the note's first line, who
    wrote it, "Approve it as memory?" Yes promotes it, No rejects it, anything else leaves it staged. The agent is not
    on that path: it does not see the question and has no tool that answers it. Promotion is still not an MCP tool.
  • Where the answer came from is on the record. Every promotion and rejection carries answered_by:
    elicitation:<client and version> or terminal.
  • An accepted answer in under 300 ms is refused and logged (answered_by: refused:too-fast). A client with
    nobody at it, which lets go of the question at once, is not an attempt: the note waits, and the tool's answer says
    where the yes is. MAGNEMO_ASK=off stops the asking altogether.
  • A client that cannot ask is told once that the note waits for the person's own magnemo yes.
  • The first-run paste ends at a restart: the tools load when the client starts, and the first memory is approved
    in the chat. docs/MCP.md has the table of clients, with what was seen.
  • The server now answers a protocol revision it does not speak with the newest it does (2025-11-25), not an echo.
  • Breaking, and on purpose: a magnemo yes that an agent or a script ran in 0.6.7 is refused in 0.6.8 (exit 3).
    If a pipeline, a hook or an agent's shell runs magnemo yes, no, clear or promote for you, it now stops with
    one line and writes nothing to memory. The yes is yours: type it in a terminal.
  • What the engine checks. magnemo yes (and no, clear, promote, their long forms reject and cleartaint,
    and the answers inside review) requires an interactive terminal (a TTY on stdin) and a name in the vault's
    trust.humans. It refuses with no TTY (an agent's tool call, a script, a pipe), with MAGNEMO_AGENT set, from inside
    an MCP server session, or for a --by that is not on the list (never defaulted). With no --by, the first listed
    name is used.
  • A refusal names its gate and the route. With no terminal: This yes is yours. Type it yourself in a terminal: magnemo yes <id>. The other refusals say which gate (a seat named, an unlisted name, an MCP session) and end with
    the same route. Each refusal is one line in the trust ledger (judgment.refused, catch: yes-check,
    ran_by: refused:<reason>). Every yes, no and clear that goes through carries ran_by: terminal.
  • One override, for a relayed word: MAGNEMO_YES_RELAY=<listed name>, on a terminal only and for that name only;
    the ledger says ran_by: relay:<who ran it>, so a relay is never read as the person's own hand.
  • What it is not. A check on the hand, not a credential: a process that allocates its own TTY, clears
    MAGNEMO_AGENT and names a listed person passes. KNOWN_LIMITS.md says so first. Promotion is still not an MCP tool.
  • The registry description no longer says "zero network calls": "Governed memory for AI agents, in plain local files.
    No network calls of its own."